{
  "openapi": "3.0.1",
  "info": {
    "title": "Freelance Lead Radar: Upwork Job and Client Filter Engine",
    "description": "For freelance developers, agencies, and service businesses. Pulls matching Upwork jobs with budget, client country, spend history, payment verification, proposals count, and skills. Filter by category, rate, and posted window so you stop scrolling and start replying.",
    "version": "0.1",
    "x-build-id": "ZACAJu34uFK5resJP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapemint~upwork-opportunity-alert/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapemint-upwork-opportunity-alert",
        "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/scrapemint~upwork-opportunity-alert/runs": {
      "post": {
        "operationId": "runs-sync-scrapemint-upwork-opportunity-alert",
        "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/scrapemint~upwork-opportunity-alert/run-sync": {
      "post": {
        "operationId": "run-sync-scrapemint-upwork-opportunity-alert",
        "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",
        "required": [
          "sessionCookies"
        ],
        "properties": {
          "sessionCookies": {
            "title": "Upwork session cookies (required)",
            "type": "string",
            "description": "Paste your Upwork cookies as a JSON array. Log into upwork.com in Chrome, install the Cookie Editor extension, and on the Upwork tab click Export, then JSON. Paste the full output here. Cookies last about 30 days before another export is needed."
          },
          "feed": {
            "title": "Feed source",
            "enum": [
              "BEST_MATCHES",
              "MOST_RECENT",
              "BOTH"
            ],
            "type": "string",
            "description": "Which Upwork feed to pull. BEST_MATCHES returns up to 30 personalized jobs. MOST_RECENT returns the 10 latest posts across Upwork. BOTH fetches both and dedupes by job id.",
            "default": "BOTH"
          },
          "keywords": {
            "title": "Keywords (client side filter)",
            "type": "string",
            "description": "Space or comma separated keywords. A job matches if any keyword appears in its title, description, or skills. Leave blank to keep all jobs. Note: Upwork ignores keyword params on feed routes, so filtering runs locally after fetch."
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "ALL",
              "HOURLY",
              "FIXED"
            ],
            "type": "string",
            "description": "Hourly, fixed price, or all.",
            "default": "ALL"
          },
          "experienceLevel": {
            "title": "Experience level",
            "enum": [
              "ALL",
              "ENTRY",
              "INTERMEDIATE",
              "EXPERT"
            ],
            "type": "string",
            "description": "Client's required experience level.",
            "default": "ALL"
          },
          "hourlyRateMin": {
            "title": "Minimum hourly rate (USD)",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Filter out hourly jobs whose max budget is below this rate. 0 disables the filter.",
            "default": 0
          },
          "fixedBudgetMin": {
            "title": "Minimum fixed budget (USD)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Filter out fixed jobs below this budget. 0 disables the filter.",
            "default": 0
          },
          "postedWithin": {
            "title": "Posted within",
            "enum": [
              "HOUR_24",
              "DAY_7",
              "DAY_30",
              "ANY"
            ],
            "type": "string",
            "description": "Only return jobs posted within this window.",
            "default": "DAY_7"
          },
          "paymentVerifiedOnly": {
            "title": "Payment verified clients only",
            "type": "boolean",
            "description": "Skip jobs from clients without verified payment.",
            "default": false
          },
          "minClientSpent": {
            "title": "Minimum client lifetime spend (USD)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Skip clients who have spent less than this on Upwork. 0 keeps all clients, including new ones.",
            "default": 0
          },
          "clientCountries": {
            "title": "Allowed client countries",
            "type": "string",
            "description": "Comma separated country names as shown on Upwork (for example: USA, Canada, United Kingdom, Australia). Leave blank to keep all."
          },
          "maxJobs": {
            "title": "Maximum jobs per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on jobs pushed to the dataset per run. Controls cost.",
            "default": 100
          },
          "dedupe": {
            "title": "Deduplicate across runs",
            "type": "boolean",
            "description": "Skip job ids already pushed on previous runs of this actor. Stores ids in the key value store under SEEN_UIDS. Turn off to return every job on every run.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy settings. Leave blank by default. Residential proxies are only needed if requests start returning 403 from Upwork."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}