{
  "openapi": "3.0.1",
  "info": {
    "title": "Upwork Job Scraper – AI Insights, Real-Time Feed & 59+ Filters",
    "description": "Scrape Upwork jobs with AI-scored urgency, complexity & quality at $2 per 1,000 results. Real-time feed with 59+ filters (skills, budget, client rating, hire intent), automatic deduplication, and notifications-only mode for NEW jobs since your last run. For freelancers, agencies, and job boards.",
    "version": "1.1",
    "x-build-id": "Se7rCvQVD7U3iDVMq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hyperbach~upwork-scraper-ai/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hyperbach-upwork-scraper-ai",
        "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/hyperbach~upwork-scraper-ai/runs": {
      "post": {
        "operationId": "runs-sync-hyperbach-upwork-scraper-ai",
        "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/hyperbach~upwork-scraper-ai/run-sync": {
      "post": {
        "operationId": "run-sync-hyperbach-upwork-scraper-ai",
        "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": {
          "clientId": {
            "title": "Client ID",
            "minLength": 1,
            "maxLength": 255,
            "type": "string",
            "description": "Unique identifier for the client. The service automatically tracks what jobs this client has already seen.",
            "default": "default"
          },
          "limit": {
            "title": "Limit",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of items to return (1-100).",
            "default": 50
          },
          "notifications_only": {
            "title": "Notifications Only",
            "type": "boolean",
            "description": "Only return new jobs since last call (requires notification feed mode).",
            "default": false
          },
          "fields": {
            "title": "Fields (output projection)",
            "type": "array",
            "description": "Optional list of field names to keep in the dataset output. If empty, all fields are returned. Saves storage cost on long runs. Example: id, title, url, job_score, questions. Always-implicit field `id` is kept whether listed or not.",
            "items": {
              "type": "string"
            }
          },
          "title": {
            "title": "Job Title",
            "type": "string",
            "description": "The job posting title as written by the client. Contains the main description of what work needs to be done."
          },
          "description": {
            "title": "Description",
            "type": "string",
            "description": "Full job description text as written by the client. Contains detailed requirements, expectations, and project scope."
          },
          "category_name": {
            "title": "Category Name",
            "enum": [
              "Accounting & Consulting",
              "Admin Support",
              "Customer Service",
              "Data Science & Analytics",
              "Design & Creative",
              "Engineering & Architecture",
              "IT & Networking",
              "Legal",
              "Sales & Marketing",
              "Translation",
              "Web, Mobile & Software Dev",
              "Writing"
            ],
            "type": "string",
            "description": "Main category of the job (e.g., Web Development, Data Science, Design). Upwork's primary job classification."
          },
          "subcategory_name": {
            "title": "Subcategory Name",
            "enum": [
              "3D Modeling & CAD",
              "AI & Machine Learning",
              "AI Apps & Integration",
              "Accounting & Bookkeeping",
              "Art & Illustration",
              "Audio & Music Production",
              "Blockchain, NFT & Cryptocurrency",
              "Branding & Logo Design",
              "Building & Landscape Architecture",
              "Chemical Engineering",
              "Civil & Structural Engineering",
              "Community Management & Tagging",
              "Content Writing",
              "Contract Manufacturing",
              "Corporate & Contract Law",
              "Customer Service & Tech Support",
              "Data Analysis & Testing",
              "Data Entry & Transcription Services",
              "Data Extraction/ETL",
              "Data Mining & Management",
              "Database Management & Administration",
              "Desktop Application Development",
              "DevOps & Solution Architecture",
              "Digital Marketing",
              "ERP/CRM Software",
              "Ecommerce Development",
              "Editing & Proofreading Services",
              "Electrical & Electronic Engineering",
              "Energy & Mechanical Engineering",
              "Finance & Tax Law",
              "Financial Planning",
              "Game Design & Development",
              "Graphic, Editorial & Presentation Design",
              "Information Security & Compliance",
              "Interior & Trade Show Design",
              "International & Immigration Law",
              "Language Tutoring & Interpretation",
              "Lead Generation & Telemarketing",
              "Legal, Medical & Technical Translation",
              "Management Consulting & Analysis",
              "Market Research & Product Reviews",
              "Marketing, PR & Brand Strategy",
              "Mobile Development",
              "NFT, AR/VR & Game Art",
              "Network & System Administration",
              "Other - Accounting & Consulting",
              "Other - Software Development",
              "Performing Arts",
              "Personal & Professional Coaching",
              "Photography"
            ],
            "type": "string",
            "description": "Specific subcategory within the main category (e.g., Front-End Development, Machine Learning). More granular classification."
          },
          "date_posted": {
            "title": "Date Posted",
            "type": "string",
            "description": "When the job was posted on Upwork. Use this to find recent opportunities or analyze posting patterns."
          },
          "price_type": {
            "title": "Price Type",
            "enum": [
              "Fixed-price",
              "Hourly"
            ],
            "type": "string",
            "description": "How the job is priced: Fixed Price (one-time payment) or Hourly (paid per hour worked)."
          },
          "price": {
            "title": "Budget/Price - Fixed-price",
            "type": "string",
            "description": "The budget amount for the fixed-price job."
          },
          "price_min": {
            "title": "Hourly Rate - Min",
            "type": "string",
            "description": "Minimum budget or hourly rate for the job. Lower bound of the client's budget range."
          },
          "price_max": {
            "title": "Hourly Rate - Max",
            "type": "string",
            "description": "Maximum budget or hourly rate for the job. Upper bound of the client's budget range."
          },
          "skills": {
            "title": "Skills",
            "type": "string",
            "description": "Comma-separated list of required skills and technologies for the job as specified by the client."
          },
          "experience_level": {
            "title": "Experience Level",
            "enum": [
              "Entry_level",
              "Expert",
              "Intermediate"
            ],
            "type": "string",
            "description": "Required experience level for the job: Entry Level, Intermediate, or Expert."
          },
          "client_location": {
            "title": "Client Location",
            "type": "string",
            "description": "Geographic location of the client posting the job."
          },
          "jobs_posted": {
            "title": "Jobs Posted",
            "type": "string",
            "description": "Total number of jobs the client has posted on Upwork."
          },
          "hire_rate": {
            "title": "Client Hire Rate",
            "type": "string",
            "description": "Percentage of freelancers the client has hired from total applications. Higher rates indicate clients who actively hire rather than just browse."
          },
          "open_jobs": {
            "title": "Open Jobs",
            "type": "string",
            "description": "Number of jobs the client currently has open/active."
          },
          "total_spent": {
            "title": "Total Spent",
            "type": "string",
            "description": "Total amount the client has spent on Upwork across all their projects."
          },
          "hires": {
            "title": "Hires",
            "type": "string",
            "description": "Total number of freelancers hired by the client."
          },
          "active_hires": {
            "title": "Active Hires",
            "type": "string",
            "description": "Number of freelancers currently hired by the client."
          },
          "avg_hourly_rate": {
            "title": "Client Avg Hourly Rate",
            "type": "string",
            "description": "Average hourly rate this client typically pays freelancers. Based on their historical hiring patterns."
          },
          "total_hours": {
            "title": "Total Hours",
            "type": "string",
            "description": "Total number of hours the client has worked on Upwork across all their projects."
          },
          "industry": {
            "title": "Industry",
            "enum": [
              "",
              "Aerospace",
              "Agriculture & Forestry",
              "Art & Design",
              "Automotive",
              "Aviation",
              "Education",
              "Energy & Utilities",
              "Engineering & Architecture",
              "Fashion & Beauty",
              "Finance & Accounting",
              "Food & Beverage",
              "Government & Public Sector",
              "HR & Business Services",
              "Health & Fitness",
              "Legal",
              "Manufacturing & Construction",
              "Media & Entertainment",
              "Military & Defense",
              "Mining"
            ],
            "type": "string",
            "description": "Main industry the client operates in. Select from available choices."
          },
          "company_size": {
            "title": "Company Size",
            "enum": [
              "0",
              "1",
              "10",
              "100",
              "1000",
              "10000",
              "2",
              "500",
              "None"
            ],
            "type": "string",
            "description": "Size of the client's company. Predefined option for company size. Select from available choices."
          },
          "job_is_premium": {
            "title": "Job Is Premium",
            "type": "boolean",
            "description": "Boolean flag indicating whether job is premium applies to this job."
          },
          "engagement_label": {
            "title": "Engagement Label",
            "enum": [
              "1 to 3 months",
              "3 to 6 months",
              "Less than 1 month",
              "More than 6 months"
            ],
            "type": "string",
            "description": "Expected duration or type of engagement (e.g., 1 to 3 months, 3 to 6 months, Less than 1 month, Less than 1 week, More than 6 months)."
          },
          "engagement_weeks": {
            "title": "Engagement Weeks",
            "enum": [
              "3",
              "9",
              "18",
              "52"
            ],
            "type": "string",
            "description": "Project duration in weeks. Options: 1, 3, 9, 18, 52 weeks."
          },
          "hourly_budget_type": {
            "title": "Hourly Budget Type",
            "enum": [
              "DEFAULT",
              "MANUAL",
              "NOT_PROVIDED"
            ],
            "type": "string",
            "description": "Type of hourly budget. Options: AS_NEEDED, DEFAULT, FULL_TIME, MANUAL, NOT_PROVIDED, NOT_SURE, PART_TIME."
          },
          "client_invites_sent": {
            "title": "Client Invites Sent",
            "type": "string",
            "description": "Number of client invites sent to freelancers."
          },
          "client_positions_to_hire": {
            "title": "Client Positions To Hire",
            "type": "string",
            "description": "Number of client positions to hire."
          },
          "qual_min_hours_week": {
            "title": "Qual Min Hours Week",
            "enum": [
              "0",
              "10",
              "30",
              "40"
            ],
            "type": "string",
            "description": "Minimum hours per week required for hourly jobs. Options: 10, 30, 40."
          },
          "qual_min_success_score": {
            "title": "Qual Min Success Score",
            "enum": [
              "0",
              "80",
              "90"
            ],
            "type": "string",
            "description": "Minimum Upwork success score required to apply for the job."
          },
          "qual_pref_english": {
            "title": "Qual Pref English",
            "enum": [
              "ANY",
              "CONVERSATIONAL",
              "FLUENT",
              "NATIVE"
            ],
            "type": "string",
            "description": "Client's preferred English proficiency level for freelancers."
          },
          "qual_rising_talent": {
            "title": "Qual Rising Talent",
            "type": "boolean",
            "description": "Whether the job is open to Upwork Rising Talent (newer freelancers with potential)."
          },
          "qual_portfolio_required": {
            "title": "Qual Portfolio Required",
            "type": "boolean",
            "description": "Whether the client requires a portfolio or work samples to apply."
          },
          "qual_type": {
            "title": "Qual Type",
            "enum": [
              "AGENCY",
              "ANY",
              "INDEPENDENT"
            ],
            "type": "string",
            "description": "Type of freelancer the client is looking for: Agency (team/company), Independent (solo freelancer), or Any (no preference)."
          },
          "buyer_offset_utc": {
            "title": "Buyer Offset UTC",
            "type": "string",
            "description": "UTC offset of the buyer's timezone in milliseconds. Indicates the time difference between the buyer's local time and UTC."
          },
          "buyer_city": {
            "title": "Buyer City",
            "type": "string",
            "description": "City where the client is located."
          },
          "buyer_feedback_count": {
            "title": "Buyer Feedback Count",
            "type": "string",
            "description": "Number of feedbacks the client has received."
          },
          "buyer_score": {
            "title": "Buyer Score",
            "type": "string",
            "description": "Score of the client's performance on Upwork."
          },
          "buyer_contract_date": {
            "title": "Buyer Contract Date",
            "type": "string",
            "description": "Date when the client first registered their account on Upwork. Indicates how long the client has been active on the platform."
          },
          "buyer_payment_verified": {
            "title": "Buyer Payment Verified",
            "type": "boolean",
            "description": "Boolean flag indicating whether the client has verified their payment method on Upwork."
          },
          "created_at": {
            "title": "Created At",
            "type": "string",
            "description": "Timestamp when this job record was created in our system (not the Upwork posting date)."
          },
          "ai_urgency": {
            "title": "Urgency",
            "enum": [
              "Immediate",
              "Long-Term",
              "Moderately Urgent",
              "Not Urgent",
              "Urgent",
              "Very Urgent"
            ],
            "type": "string",
            "description": "AI-detected urgency level of the job based on language and posting patterns."
          },
          "ai_duration": {
            "title": "Duration",
            "enum": [
              "Flexible",
              "Flexible Deadline",
              "Long-Term",
              "Mid-Term",
              "Part-Time",
              "Short-Term"
            ],
            "type": "string",
            "description": "AI-detected project duration based on job description analysis. Indicates expected length and type of engagement."
          },
          "ai_deadline": {
            "title": "Deadline",
            "enum": [
              "Fixed Deadline",
              "Flexible Deadline",
              "Immediate Deadline",
              "No Deadline"
            ],
            "type": "string",
            "description": "AI-detected deadline type for the job based on urgency indicators and time-sensitive language in the job description."
          },
          "ai_technical_skills": {
            "title": "Technical Skills (AI Extracted)",
            "type": "string",
            "description": "Technical skills explicitly mentioned in the job description, extracted using AI. These are skills directly stated by the client as requirements or preferences."
          },
          "ai_inferred_technical_skills": {
            "title": "Technical Skills (AI Inferred)",
            "type": "string",
            "description": "Technical skills inferred by AI from the job description context, even when not explicitly mentioned. These are skills likely needed based on project requirements and industry patterns."
          },
          "ai_specific_requirements_before_applying": {
            "title": "Specific Requirements Before Applying",
            "type": "string",
            "description": "AI-extracted specific requirements that clients mention applicants must fulfill before applying, such as portfolio submissions, work samples, or specific application instructions."
          },
          "ai_explicit_mention_of_agency": {
            "title": "Explicit Mention Of Agency",
            "enum": [
              "Agencies Welcome",
              "No Agencies",
              "No Mention"
            ],
            "type": "string",
            "description": "AI-detected explicit mention of agency preferences in the job posting. Indicates whether the client welcomes agencies, prefers individual freelancers, or has no specific preference."
          },
          "ai_clients_technical_understanding": {
            "title": "Client's Technical Understanding",
            "enum": [
              "Expert",
              "High",
              "Low",
              "Moderate"
            ],
            "type": "string",
            "description": "AI-detected assessment of the client's technical understanding based on how they describe their project requirements. Helps identify whether the client has deep technical knowledge, moderate understanding, basic knowledge, or expert-level expertise in the domain."
          },
          "ai_named_entities": {
            "title": "Named Entities",
            "type": "string",
            "description": "AI-extracted named entities from the job description including company names, technologies, frameworks, tools, locations, and other important entities mentioned by the client. This field helps identify specific brands, platforms, or technologies the client is working with."
          },
          "ai_anti_bot_phrase": {
            "title": "Anti Bot Phrase",
            "type": "string",
            "description": "AI-detected anti-bot phrases and instructions used by clients in job descriptions to filter out automated applications and ensure human applicants read the full posting. These phrases typically ask applicants to include specific words, numbers, emojis, or perform certain actions in their proposals to prove they've read the requirements carefully."
          },
          "ai_summary": {
            "title": "Summary",
            "type": "string",
            "description": "AI-generated summary of the job description. Provides a concise overview of the job requirements and responsibilities."
          },
          "keywords": {
            "title": "Keywords Search",
            "type": "string",
            "description": "Full-text search across job title, description, skills, categories, location, industry, and AI-generated fields. Uses PostgreSQL full-text search for fast performance on millions of jobs."
          },
          "exclude_keywords": {
            "title": "Exclude Keywords",
            "type": "string",
            "description": "Exclude jobs containing any of these keywords. Uses the same full-text search across job title, description, skills, categories, location, industry, and AI-generated fields. Perfect for filtering out unwanted job types or technologies."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}