{
  "openapi": "3.0.1",
  "info": {
    "title": "Upwork Freelancers Scraper · Rates, Earnings & JSS",
    "description": "Find and shortlist Upwork freelancers without logging in. Search any skill, keep your Upwork filters, then filter by rate, JSS, earnings and hours. Get exact earnings, badges, location and skills, plus rating, hire-again rate and client feedback on request. Pay per freelancer.",
    "version": "0.0",
    "x-build-id": "npCVPk8CexMCsMb2t"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~upwork-freelancers-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-upwork-freelancers-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/memo23~upwork-freelancers-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-upwork-freelancers-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/memo23~upwork-freelancers-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-upwork-freelancers-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": "What you would type into Upwork's talent search, one search per entry, e.g. \"python developer\" or \"shopify designer\". Each search returns up to Max results freelancers.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Upwork talent search URLs or profile URLs",
            "type": "array",
            "description": "Paste a talent search URL from your browser (https://www.upwork.com/nx/search/talent/?q=...) to keep every filter you set there, or a freelancer profile URL (https://www.upwork.com/freelancers/~01...).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "profileUrls": {
            "title": "Freelancer profiles",
            "type": "array",
            "description": "Specific freelancers to read in full: profile URLs, bare ids (~01...) or custom profile URLs. Billed as a freelancer row plus profile details. Logged-out profile pages do not show lifetime earnings or Job Success Score, so those fields stay empty for these rows; use a search to get them.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max results per search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Freelancers to return for each search keyword or search URL. Upwork shows at most 10,000 per search.",
            "default": 50
          },
          "includeProfileDetails": {
            "title": "Add profile details",
            "type": "boolean",
            "description": "Open each freelancer's profile and add rating, total feedback, jobs worked, hire-again rate, member since, last worked on, availability, job categories, specialized profiles, portfolio projects and the latest completed contracts with client feedback both ways. Billed as an extra profile-details event per freelancer. Slower.",
            "default": false
          },
          "location": {
            "title": "Freelancer location",
            "type": "string",
            "description": "Country as Upwork names it, e.g. \"United States\", \"United Kingdom\", \"Germany\". Applied to keyword searches; for search URLs, set the location on Upwork itself."
          },
          "topRatedPlusOnly": {
            "title": "Top Rated Plus only",
            "type": "boolean",
            "description": "Ask Upwork for Top Rated Plus freelancers only (applied to keyword searches).",
            "default": false
          },
          "topRatedOnly": {
            "title": "Top Rated or Top Rated Plus only",
            "type": "boolean",
            "description": "Keep only freelancers with a Top Rated or Top Rated Plus badge.",
            "default": false
          },
          "minHourlyRate": {
            "title": "Hourly rate from (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep freelancers whose listed hourly rate is at least this."
          },
          "maxHourlyRate": {
            "title": "Hourly rate up to (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep freelancers whose listed hourly rate is at most this."
          },
          "minJobSuccessScore": {
            "title": "Job Success Score at least (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "0 to 100. Freelancers without a shown score are left out when this is set."
          },
          "minTotalEarnings": {
            "title": "Lifetime earnings at least (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Freelancers who hide their earnings are left out when this is set."
          },
          "minTotalHours": {
            "title": "Hours billed at least",
            "minimum": 0,
            "type": "integer",
            "description": "Total hours worked on Upwork."
          },
          "excludeAgencyMembers": {
            "title": "Exclude agency members",
            "type": "boolean",
            "description": "Leave out freelancers who appear in search under an agency.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How many Upwork pages to load at once (browser tabs when a browser is needed).",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}