{
  "openapi": "3.0.1",
  "info": {
    "title": "Glassdoor Jobs Scraper",
    "description": "Scrape Glassdoor jobs in 21 countries by keyword, location, company or URL, beyond the ~900-job limit: full description, salary range, company rating, size, industry, CEO, skills. Export to JSON, CSV or Excel.",
    "version": "0.0",
    "x-build-id": "ZukwTOzwpj2XCdsyn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nice_dev~glassdoor-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nice_dev-glassdoor-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/nice_dev~glassdoor-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nice_dev-glassdoor-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/nice_dev~glassdoor-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nice_dev-glassdoor-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": {
          "startUrls": {
            "title": "Start URLs",
            "maxItems": 1000,
            "type": "array",
            "description": "Glassdoor URLs from any country site: search results (`https://www.glassdoor.com/Job/new-york-ny-software-engineer-jobs-SRCH_IL.0,11_IC1132348_KO12,29.htm` or `https://www.glassdoor.com/Job/jobs.htm?sc.keyword=engineer&locT=C&locId=1132348`, the filters set on the site are kept), company job pages (`https://www.glassdoor.com/Jobs/Google-Jobs-E9079.htm`) or single jobs (`https://www.glassdoor.com/job-listing/...htm?jl=1009876543210`). When this list is not empty, the search fields below (keywords, locations, countries, companies) are ignored; filters, caps and monitoring still apply. Max 1 000 URLs.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "query": {
            "title": "Search keyword",
            "maxLength": 200,
            "type": "string",
            "description": "Job title, skill or company, as typed on Glassdoor (e.g. `software engineer`). Empty = every job of the location."
          },
          "searchQueries": {
            "title": "More search keywords",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Several keywords in one run: one search per keyword (times each location and country below). Added to **Search keyword**; jobs found by several searches are saved once.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "maxLength": 200,
            "type": "string",
            "description": "City, state / region or country, as typed on Glassdoor (e.g. `New York, NY`, `London`, `Bavaria`). Matched to Glassdoor's own place list; a place it does not know stops the run with a clear message instead of searching everywhere (not checked on the American site with **Remote jobs only**). Empty = the whole country site."
          },
          "locations": {
            "title": "More locations",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Several locations in one run: every keyword is searched in every location (3 keywords × 4 locations = 12 searches, max 500 per run). Added to **Location**.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country site",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "IN",
              "IE",
              "NZ",
              "SG",
              "HK",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "BE",
              "AT",
              "CH",
              "BR",
              "MX",
              "AR",
              "JP"
            ],
            "type": "string",
            "description": "Glassdoor country site to search: each one has its own jobs, pay currency and language of the labels.",
            "default": "US"
          },
          "countries": {
            "title": "More country sites",
            "uniqueItems": true,
            "type": "array",
            "description": "Search several Glassdoor country sites in one run: every keyword × location is searched on each of them. With **Country site** left on United States, only the countries of this list are searched (to include the US, put `US` here); another **Country site** is added to the list. Leave **Location** empty to cover each whole country.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "GB",
                "CA",
                "AU",
                "IN",
                "IE",
                "NZ",
                "SG",
                "HK",
                "DE",
                "FR",
                "ES",
                "IT",
                "NL",
                "BE",
                "AT",
                "CH",
                "BR",
                "MX",
                "AR",
                "JP"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Canada",
                "Australia",
                "India",
                "Ireland",
                "New Zealand",
                "Singapore",
                "Hong Kong",
                "Germany",
                "France",
                "Spain",
                "Italy",
                "Netherlands",
                "Belgium",
                "Austria",
                "Switzerland",
                "Brazil",
                "Mexico",
                "Argentina",
                "Japan"
              ]
            },
            "default": []
          },
          "companies": {
            "title": "Companies",
            "maxItems": 500,
            "uniqueItems": true,
            "type": "array",
            "description": "All the open jobs of these employers: company names (`Google`), Glassdoor company pages (`https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.11,17.htm`) or Glassdoor employer ids (`9079`). A name is matched to the exact Glassdoor employer, not to look-alike names (the log lists the candidates when none matches). Combined with the keywords and locations above when they are filled.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "jobIds": {
            "title": "Job IDs",
            "maxItems": 10000,
            "uniqueItems": true,
            "type": "array",
            "description": "Glassdoor job ids (the `jl=` value of a job link, e.g. `1009876543210`) or job links to read directly, without a search, up to 10 000. Read on top of the keyword and location searches: empty those fields to read only these jobs. Expired jobs are returned too, flagged as expired.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of jobs to save for the whole run (after deduplication and filters). 0 = no limit.",
            "default": 100
          },
          "maxItemsPerQuery": {
            "title": "Max jobs per search",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Cap for EACH search (keyword × location × country, company, or search URL; each value of a several-values filter — job types, employer sizes, job functions — is a search of its own), so that the first search cannot use up the whole **Max jobs** budget. 0 = no per-search cap.",
            "default": 0
          },
          "splitLargeSearches": {
            "title": "Get past Glassdoor's search limit",
            "type": "boolean",
            "description": "Glassdoor shows about 900 jobs per search, whatever total it announces. When a search has more, the Actor splits it with Glassdoor's own filters (city, sector, job function, company size, job type, seniority, employer) and collects each part; duplicates are removed. The log and the `COVERAGE` record give announced vs collected jobs per search, and what is not covered. Off = first ~900 only.",
            "default": true
          },
          "extractDetails": {
            "title": "Full job details and employer profile",
            "type": "boolean",
            "description": "Add the full description, exact posting date, GPS, apply link, skills, education, years of experience and the employer profile (website, size, revenue, type, founded, headquarters, sector, CEO, 11 ratings). Same price. Off = the search-card fields only (title, company, location, pay, age, rating, short description), about 2× faster.",
            "default": true
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "text_html",
              "all",
              "text",
              "html",
              "markdown",
              "none"
            ],
            "type": "string",
            "description": "Which forms of the full job description to save (with **Full job details**). Smaller = lighter dataset.",
            "default": "text_html"
          },
          "extractContacts": {
            "title": "E-mails and phones from the job text (extra charge)",
            "type": "boolean",
            "description": "Add the e-mail addresses and phone numbers the employer wrote in the job description (`emails`, `phones`). Needs **Full job details**. Charged only for jobs where at least one is found. See Pricing.",
            "default": false
          },
          "companyEmails": {
            "title": "Employer contact e-mail from its website (extra charge)",
            "type": "boolean",
            "description": "Visit the employer's own website (the one shown on Glassdoor) and add the contact e-mail addresses published there (`companyEmails`, e.g. contact@, jobs@), once per company. The social profiles it links to (LinkedIn, X, Facebook, Instagram, YouTube, TikTok) come in the same visit (`companySocialLinks`), at no extra charge. Needs **Full job details**. Charged only for jobs where at least one e-mail is found. See Pricing.",
            "default": false
          },
          "companySummary": {
            "title": "One summary row per company (extra charge)",
            "type": "boolean",
            "description": "Also save one row per employer found (`recordType` = `company`): profile, 11 ratings, open jobs on the Glassdoor site of the country, jobs of this run, and the change since the previous run with the same **Memory key**. Written at the end of the run for the employers of the jobs delivered; not counted in **Max jobs**. Ready for a CRM or n8n. Needs **Full job details**. Charged per company row. See Pricing.",
            "default": false
          },
          "salaryBenchmark": {
            "title": "Market salary benchmark (extra charge)",
            "type": "boolean",
            "description": "Add Glassdoor's market pay for the job's role and city (`marketPay*`: low / median / high, and how many salaries it is based on), read once per role × place. Useful when the employer shows no pay. Needs **Full job details**. Charged only for jobs where a benchmark is found. See Pricing.",
            "default": false
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "any",
              "24h",
              "3d",
              "7d",
              "14d",
              "30d"
            ],
            "type": "string",
            "description": "Only jobs posted in this period.",
            "default": "any"
          },
          "jobTypes": {
            "title": "Job types",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep jobs of ANY of these types. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "parttime",
                "contract",
                "temporary",
                "permanent"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Permanent"
              ]
            },
            "default": []
          },
          "experienceLevels": {
            "title": "Experience levels",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep jobs of ANY of these seniority levels, as tagged by Glassdoor. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "internship",
                "entry",
                "midsenior",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Internship",
                "Entry level",
                "Mid-senior level",
                "Director",
                "Executive"
              ]
            },
            "default": []
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Only the jobs Glassdoor tags as work from home / remote. On the American site Glassdoor has no such filter: the search is sent to its place \"Remote\" (the whole country) and the **Location** you type is not used there. Anywhere else (other countries, start URLs, job ids) the tag is on the full job details: needs **Full job details**.",
            "default": false
          },
          "applyMethod": {
            "title": "How to apply",
            "enum": [
              "any",
              "easyApply",
              "external"
            ],
            "type": "string",
            "description": "Easy Apply = jobs candidates apply to on Glassdoor (the isEasyApply column); Employer site = jobs that send candidates to the employer's or ATS page.",
            "default": "any"
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Jobs whose pay range reaches this yearly amount, in the currency of the country site (Glassdoor's own filter, by steps: it includes the pay Glassdoor estimates). 0 = no filter.",
            "default": 0
          },
          "maxSalary": {
            "title": "Maximum salary",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Jobs whose pay range starts below this yearly amount, in the currency of the country site. 0 = no filter.",
            "default": 0
          },
          "minRating": {
            "title": "Minimum company rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only jobs of employers rated at least this on Glassdoor (out of 5; Glassdoor filters by whole stars, the exact rating is checked by the Actor). Jobs of unrated employers are dropped too when set. 0 = no filter.",
            "default": 0
          },
          "employerSizes": {
            "title": "Company sizes",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep jobs of employers of ANY of these sizes (number of employees), in the five classes Glassdoor filters by. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1-200",
                "201-500",
                "501-1,000",
                "1,001-5,000",
                "5,001+"
              ]
            },
            "default": []
          },
          "industries": {
            "title": "Industries",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Keep jobs of employers of ANY of these sectors: Glassdoor sector names as shown on the site (`Information Technology`, `Healthcare`, `Financial Services`…) or their ids (`10013`). Empty = all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "jobFunctions": {
            "title": "Job functions",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep jobs of ANY of these functions, as classified by Glassdoor. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "1001",
                "1002",
                "1003",
                "1004",
                "1005",
                "1006",
                "1007",
                "1008",
                "1009",
                "1010",
                "1011",
                "1012",
                "1013",
                "1014",
                "1015",
                "1016",
                "1017",
                "1018",
                "1019",
                "1020",
                "1021",
                "1022",
                "1023"
              ],
              "enumTitles": [
                "Administrative",
                "Arts & Design",
                "Business",
                "Consulting",
                "Customer Services & Support",
                "Education",
                "Engineering",
                "Finance & Accounting",
                "Healthcare",
                "Human Resources",
                "Information Technology",
                "Legal",
                "Marketing",
                "Media & Communications",
                "Military & Protective Services",
                "Operations",
                "Other",
                "Product & Project Management",
                "Research & Science",
                "Retail & Food Services",
                "Sales",
                "Skilled Labor & Manufacturing",
                "Transportation"
              ]
            },
            "default": []
          },
          "radius": {
            "title": "Radius",
            "enum": [
              "default",
              "0",
              "5",
              "10",
              "15",
              "25",
              "50",
              "100"
            ],
            "type": "string",
            "description": "Distance around **Location** (miles on the US site, kilometres on most others, as on Glassdoor). Default = Glassdoor's (25).",
            "default": "default"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Order of the results (matters with **Max jobs**). With **Only new jobs** or **Posted after**, the results are always read newest first.",
            "default": "relevance"
          },
          "urlParams": {
            "title": "Extra Glassdoor filters",
            "maxItems": 20,
            "uniqueItems": true,
            "type": "array",
            "description": "Any other Glassdoor search filter as `name=value` (the names Glassdoor uses in its search, e.g. `cityId=1132348`, `industryNId=10013`). Sent as is with every search.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "postedAfter": {
            "title": "Posted after",
            "maxLength": 40,
            "type": "string",
            "description": "Only jobs posted on or after this date: `2026-09-01`, or a period before the run such as `7 days` or `2 weeks` (`24 hours` through the API). Reads the posting date Glassdoor gives (the `publishedAt` column, the day only, so a period counts whole days): a job Glassdoor posted again counts from that day — the **Date posted** filter above counts from its first posting."
          },
          "postedBefore": {
            "title": "Posted before",
            "maxLength": 40,
            "type": "string",
            "description": "Only jobs posted on or before this date (the whole day is included), or older than a period such as `30 days`."
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Drop the jobs whose title contains one of these words (case and accents ignored).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "matchTitle": {
            "title": "Keyword in the job title",
            "enum": [
              "off",
              "loose",
              "exact"
            ],
            "type": "string",
            "description": "Glassdoor also returns related jobs. Loose = every word of the search keyword is in the job title; Exact = the keyword is in the title as typed. Off = keep everything Glassdoor returns.",
            "default": "off"
          },
          "excludeCompanies": {
            "title": "Exclude companies",
            "maxItems": 200,
            "uniqueItems": true,
            "type": "array",
            "description": "Drop the jobs of these employers (the company name contains one of these words, case and accents ignored), e.g. staffing agencies.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeSponsored": {
            "title": "Skip sponsored jobs",
            "type": "boolean",
            "description": "Drop the jobs Glassdoor shows as paid ads (the isSponsored column).",
            "default": false
          },
          "excludeStaffingAgencies": {
            "title": "Skip staffing agencies",
            "type": "boolean",
            "description": "Skip jobs posted by staffing and recruiting agencies (employer in Glassdoor's Human Resources & Staffing sector). Needs Extract job details.",
            "default": false
          },
          "onlyWithSalary": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Drop the jobs that show no pay.",
            "default": false
          },
          "onlyEmployerSalary": {
            "title": "Only salaries given by the employer",
            "type": "boolean",
            "description": "Drop the jobs whose pay is only Glassdoor's estimate (the salarySource column).",
            "default": false
          },
          "latitude": {
            "title": "Near: latitude",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "With **Near: longitude** and **Within (km)**: keep only the jobs whose place is within this distance of the point (the distanceKm column). Needs **Full job details** (the GPS of the job)."
          },
          "longitude": {
            "title": "Near: longitude",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Longitude of the point (see **Near: latitude**)."
          },
          "radiusKm": {
            "title": "Within (km)",
            "minimum": 0,
            "maximum": 20000,
            "type": "number",
            "description": "Distance from the point, in kilometres. 0 = no filter.",
            "default": 0
          },
          "resumeKeywords": {
            "title": "Your skills (match score)",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Skills or keywords of a profile (`Python`, `AWS`, `Kubernetes`): each job gets a match score (0-100), the keywords found in its title, description and skills, and the missing ones. Does not drop jobs; combine with **Min match score** to filter.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minMatchScore": {
            "title": "Min match score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "With **Your skills**: drop the jobs whose match score is below this (0-100). 0 = keep all.",
            "default": 0
          },
          "onlyNew": {
            "title": "Only new jobs",
            "type": "boolean",
            "description": "Skip the jobs that a previous run (same **Memory key**) already delivered: they are not saved and not charged, and their details are not even read. First run = everything is new.",
            "default": false
          },
          "stateKey": {
            "title": "Memory key",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "maxLength": 64,
            "type": "string",
            "description": "Name of the memory used by **Only new jobs** and the company rows. Give each schedule / task its own key (e.g. `nyc-engineers`) so that they do not share their memory. Letters, digits, `-` and `_`.",
            "default": "default"
          },
          "resetState": {
            "title": "Reset the memory",
            "type": "boolean",
            "description": "Forget everything remembered under this **Memory key** before the run: this run returns (and charges) every job again. Untick it afterwards.",
            "default": false
          },
          "excludeJobIds": {
            "title": "Skip these job IDs",
            "maxItems": 100000,
            "uniqueItems": true,
            "type": "array",
            "description": "Glassdoor job ids you already have (the id column): never saved nor charged. For a memory kept by the Actor itself, use **Only new jobs**.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy configuration (included proxy: paying users only)",
            "type": "object",
            "description": "Glassdoor turns away most data-center addresses: keep **Apify Proxy** and the Actor uses residential IPs of the country site, included in the price (the proxy group, the country and **No proxy** chosen here are ignored, and the paid residential, SERP and Unblocker groups are refused). Your own proxies (`proxyUrls`) are used as given: they should be residential, in the country of the site. On the Apify free plan the included proxy is not available: add your own proxy URLs, or the run stops at once with a message.",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of requests processed in parallel.",
            "default": 3
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 10,
            "maximum": 600,
            "type": "integer",
            "description": "Most requests to Glassdoor in any 60 seconds (a results page = 30 jobs; the details of those 30 jobs are one more request). A budget, not an even pace: up to this many can leave at once when the minute starts (spread them with the minimum delay below). Lower it if the log shows HTTP 429 / 403.",
            "default": 60
          },
          "minRequestIntervalMs": {
            "title": "Min delay between requests",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Smallest gap between two requests, in milliseconds. Unlike the per-minute rate, this spreads the requests evenly instead of letting them go out in a burst. 0 = no gap.",
            "default": 0
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Retries per request before it is marked as failed. A request Glassdoor turns away is also retried on a new IP up to 10 times without using up these retries.",
            "default": 5
          },
          "debugLog": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Include debug messages in the run log.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}