{
  "openapi": "3.0.1",
  "info": {
    "title": "Freelancer.com Scraper",
    "description": "[💰 $0.95 / 1K] Extract active project listings from Freelancer.com — titles, descriptions, skills, budgets, bid counts, and employer flags. Filter by keyword, category, fixed vs hourly, budget range, country, and sort order. Built for lead generation, market research, and pricing intelligence.",
    "version": "1.0",
    "x-build-id": "5qmpg1o1TAg0Jhg3y"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~freelancer-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-freelancer-com-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/solidcode~freelancer-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-freelancer-com-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/solidcode~freelancer-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-freelancer-com-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 Queries",
            "type": "array",
            "description": "Free-text keywords to search across active Freelancer.com projects (e.g. 'shopify', 'logo design', 'react native'). Each query produces its own set of results. Leave empty if you only want to use Search URLs below.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Paste one or more Freelancer.com URLs. Accepts category listings (e.g. https://www.freelancer.com/jobs/web-development), keyword searches (https://www.freelancer.com/search/projects?q=logo-design), or direct project pages. Filters in the URL are honored as-is, including the Fixed Price and Hourly budget boxes from the site's own filter panel (fill only one of those two pairs — a fixed-price range and an hourly rate range describe different things and only one can be applied per URL). If your URL includes a page number, please note: it skips that many projects from the start of THIS actor's own result order, which is not the same order the Freelancer.com website puts them in — so page 3 will give you 50 genuine matching projects, but not the same 50 cards you were just looking at in your browser. Copy the URL without the page number if you want a dependable starting point.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category",
            "enum": [
              "websites-it-software",
              "mobile-phones-computing",
              "writing-content",
              "design-media-architecture",
              "data-entry-admin",
              "engineering-science",
              "sales-marketing",
              "business-accounting-human-resources-legal",
              "product-sourcing-manufacturing",
              "translation-languages",
              "freight-shipping-transportation",
              "education",
              "trades-services",
              "local-jobs-services",
              "telecommunications",
              "other"
            ],
            "type": "string",
            "description": "Restrict results to a Freelancer category. Leave blank to search across all categories."
          },
          "projectType": {
            "title": "Project Type",
            "enum": [
              "all",
              "fixed",
              "hourly"
            ],
            "type": "string",
            "description": "Fixed-price projects pay a single agreed amount. Hourly projects bill by the hour."
          },
          "minBudget": {
            "title": "Minimum Budget (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep projects whose posted budget starts at or above this amount. This looks at the budget the client advertised, not what freelancers have bid so far. Budgets posted in other currencies are converted to US dollars first. On hourly projects it is compared against the posted hourly rate. Leave empty for no minimum."
          },
          "maxBudget": {
            "title": "Maximum Budget (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep projects whose posted budget tops out at or below this amount. Budgets posted in other currencies are converted to US dollars first. Open-ended budgets (for example \"$500 and up\") are left out because they have no ceiling. On hourly projects it is compared against the posted hourly rate. Leave empty for no maximum."
          },
          "country": {
            "title": "Employer Country",
            "enum": [
              "us",
              "gb",
              "ca",
              "au",
              "in",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "se",
              "ch",
              "ie",
              "ae",
              "sa",
              "sg",
              "hk",
              "jp",
              "kr",
              "ph",
              "my",
              "id",
              "th",
              "vn",
              "br",
              "mx",
              "ar",
              "co",
              "cl",
              "za",
              "ng",
              "eg",
              "tr",
              "il",
              "pl",
              "ua",
              "ru",
              "nz",
              "pt",
              "be",
              "at",
              "dk",
              "no",
              "fi",
              "gr",
              "cz",
              "ro",
              "hu",
              "pk",
              "bd"
            ],
            "type": "string",
            "description": "Restrict to projects posted by employers in a specific country. This matches the employer's own country, not the currency they pay in — a Malaysian client paying in US dollars is found under Malaysia, not the United States. Picking a country also fills the `country` column on every row. Leave blank for all countries; `country` is then filled only for the projects that publish an employer location."
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "relevance",
              "newest",
              "budget_low",
              "budget_high"
            ],
            "type": "string",
            "description": "How to order project results. \"Newest first\" puts the most recently posted projects at the top. The budget options compare amounts in US dollars, so projects priced in different currencies rank fairly against each other, and a project posted with an open-ended budget like \"$100,000 and up\" is ranked by the amount it does state instead of being pushed to the end of the list. If you enter more than one Search Query or URL, each one is ordered on its own and the blocks follow each other in the dataset rather than merging into a single ranked list. Note: when a Search Query is set, Freelancer blends its own relevance score into which projects are returned."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Cap on total project rows across all queries and URLs. Default 1000 — lower for quick runs, raise for larger pulls, or set to 0 to request the full 10,000-row maximum. Keep in mind that any one search term or URL returns about 5,000 projects at most, so reaching 10,000 in a single run means using two or more of them. The actor stops requesting new pages once this number is reached but keeps the full final page, which can overshoot the cap by up to 99 rows on larger pulls. A cap below 100 is requested exactly, so a small run returns close to the number you asked for."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}