{
  "openapi": "3.0.1",
  "info": {
    "title": "Freelancer.com Projects Scraper — Budgets, Bids & Skills",
    "description": "Scrape open Freelancer.com projects: title, full description, skills, budget (+ USD), fixed or hourly, bid count and average bid, posted date, language and client country. Keyword, skill, budget, hourly rate, bids and date filters; only-new mode for lead alerts. No login.",
    "version": "0.1",
    "x-build-id": "8l9fZf3LRRjQ1AEUD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~freelancer-projects-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-freelancer-projects-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/yugenox~freelancer-projects-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-freelancer-projects-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/yugenox~freelancer-projects-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-freelancer-projects-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": {
          "keywords": {
            "title": "🔎 Keywords",
            "type": "array",
            "description": "What to search for in open Freelancer.com projects, e.g. \"python\", \"logo design\", \"shopify\", \"data entry\". Each keyword is its own search (Max projects is shared fairly between them). Leave empty to get the newest open projects across the whole site (combine with Skills or the filters below).",
            "items": {
              "type": "string"
            }
          },
          "skills": {
            "title": "Skills",
            "type": "array",
            "description": "Only projects tagged with at least one of these Freelancer skills, e.g. \"Python\", \"Logo Design\", \"WordPress\", \"Data Entry\". Use the skill names shown on Freelancer.com (a skill ID or a freelancer.com/jobs/<skill>/ link also works). Unknown names are listed in the status message.",
            "items": {
              "type": "string"
            }
          },
          "projectType": {
            "title": "Project type",
            "enum": [
              "all",
              "fixed",
              "hourly"
            ],
            "type": "string",
            "description": "Fixed-price projects, hourly projects, or both.",
            "default": "all"
          },
          "countries": {
            "title": "Client countries",
            "type": "array",
            "description": "Only projects posted by clients in these countries, e.g. \"United States\", \"UK\", \"AU\", \"Germany\" (names or 2-letter codes). Each country is its own search, and its rows carry the client's country.",
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "title": "Project languages",
            "type": "array",
            "description": "Only projects written in these languages, e.g. \"English\", \"Spanish\", \"fr\" (names or 2-letter codes). Empty = all languages.",
            "items": {
              "type": "string"
            }
          },
          "minBudgetUsd": {
            "title": "Minimum budget (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Fixed-price projects only: keep projects whose budget reaches at least this many US dollars (other currencies are converted with Freelancer's own exchange rate). 0 = no minimum.",
            "default": 0
          },
          "maxBudgetUsd": {
            "title": "Maximum budget (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Fixed-price projects only: keep projects whose budget starts at or below this many US dollars. 0 = no maximum.",
            "default": 0
          },
          "minHourlyRateUsd": {
            "title": "Minimum hourly rate (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Hourly projects only: keep projects whose hourly range reaches at least this many US dollars per hour. 0 = no minimum.",
            "default": 0
          },
          "maxHourlyRateUsd": {
            "title": "Maximum hourly rate (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Hourly projects only: keep projects whose hourly range starts at or below this many US dollars per hour. 0 = no maximum.",
            "default": 0
          },
          "maxBidCount": {
            "title": "Maximum bids",
            "minimum": 0,
            "type": "integer",
            "description": "Only projects with at most this many bids so far — e.g. 10 to find projects with little competition, 0 for projects nobody has bid on yet. Leave empty for any number of bids."
          },
          "postedWithinHours": {
            "title": "Posted within (hours)",
            "minimum": 0,
            "maximum": 8760,
            "type": "integer",
            "description": "Only projects posted in the last N hours, e.g. 24 for today's projects. 0 = any time.",
            "default": 0
          },
          "excludeKeywords": {
            "title": "Exclude words",
            "type": "array",
            "description": "Leave out projects whose title, description or skills contain any of these words, e.g. \"wordpress\", \"urgent\", \"cheap\".",
            "items": {
              "type": "string"
            }
          },
          "matchAllWords": {
            "title": "Every keyword word must match",
            "type": "boolean",
            "description": "Keep a project only when EVERY word of its keyword appears in its title, description or skills (Freelancer's own search also returns projects that match only some of the words).",
            "default": false
          },
          "sort": {
            "title": "Order",
            "enum": [
              "newest",
              "fewestBids",
              "mostBids"
            ],
            "type": "string",
            "description": "The order Freelancer returns projects in. Newest = most recently posted or updated first.",
            "default": "newest"
          },
          "maxItems": {
            "title": "Max projects",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of projects to save (and pay for) in this run. 0 = as many as the run can find (up to 10,000; Freelancer has roughly 4,500–5,000 open projects at a time).",
            "default": 100
          },
          "onlyNew": {
            "title": "Only new projects",
            "type": "boolean",
            "description": "Skip projects that an earlier run with the same search and filters already saved (they are not saved again and not charged). Ideal for an hourly or daily schedule feeding a lead alert, Slack channel or spreadsheet.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (datacenter) is the default and comes with every Apify plan — nothing else is needed.",
            "default": {
              "useApifyProxy": true
            }
          },
          "_noResidential": {
            "title": "Run as an account without residential proxies",
            "type": "boolean",
            "description": "Internal (canaries): behave exactly like an account without the RESIDENTIAL proxy group.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}