{
  "openapi": "3.0.1",
  "info": {
    "title": "Freelancer Projects Scraper",
    "description": "Collect active public projects from Freelancer.com and return structured records with titles, descriptions, project types, budgets, currencies, bid counts, skills and posting dates. Search by keywords or skill IDs, filter by project type and minimum budget, and optionally include full descriptions.",
    "version": "0.1",
    "x-build-id": "oghgRldOGqggYM9Lb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~freelancer-projects-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-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/axiomworks~freelancer-projects-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-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/axiomworks~freelancer-projects-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-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": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Plain keywords to search active Freelancer.com projects, e.g. ['web scraping', 'data entry']. Not URLs. Each query runs separately; results are deduplicated and share the maxItems budget. A query with no matches adds 0 rows; the run still succeeds. Pass [] only if skillIds is set.",
            "items": {
              "type": "string"
            }
          },
          "skillIds": {
            "title": "Skill IDs",
            "type": "array",
            "description": "Optional Freelancer skill ids (integers) to filter by, e.g. [3, 13] (3 = PHP, 13 = Python). Projects with any listed skill match. With searchQueries empty, returns the newest projects for those skills. Unknown ids give 0 rows.",
            "items": {
              "type": "integer"
            },
            "default": []
          },
          "projectType": {
            "title": "Project type",
            "enum": [
              "any",
              "fixed",
              "hourly"
            ],
            "type": "string",
            "description": "Payment type filter: 'any' (default), 'fixed' (fixed price) or 'hourly'. Example: 'fixed'.",
            "default": "any"
          },
          "minBudget": {
            "title": "Minimum budget",
            "minimum": 0,
            "type": "number",
            "description": "Minimum budget as a number in each project's own currency, e.g. 100. Projects whose highest budget is below it are dropped. 0 (default) disables the filter.",
            "default": 0
          },
          "maxBudget": {
            "title": "Maximum budget",
            "minimum": 0,
            "type": "number",
            "description": "Maximum budget as a number in each project's own currency, e.g. 500. Projects whose lowest budget is above it are dropped. 0 (default) disables the filter.",
            "default": 0
          },
          "postedWithinHours": {
            "title": "Posted within hours",
            "minimum": 0,
            "type": "integer",
            "description": "Only projects posted within this many hours, e.g. 24 for the last day. Integer, 0 (default) disables the filter. A tight window with few matches returns fewer rows than maxItems.",
            "default": 0
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum projects across all queries after filters and deduplication, 1-5000, default 50. Unmatched or blocked searches return no records and a status message.",
            "default": 50
          },
          "includeFullDescription": {
            "title": "Include full description",
            "type": "boolean",
            "description": "true returns the complete project description; false (default) returns the first 300 characters.",
            "default": false
          },
          "enableAiEnrichment": {
            "title": "AI enrichment",
            "type": "boolean",
            "description": "true (default) adds an 'intent' label (realistic, underpriced or unclear budget for the scope) via a third-party AI processor, billed as an extra event per enriched row. false skips it and leaves intent null.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings, e.g. {\"useApifyProxy\": true}. Direct by default; if Freelancer.com blocks a request the Actor retries with backoff through datacenter proxy. Leave default unless runs return no rows.",
            "default": {
              "useApifyProxy": false
            }
          },
          "currencies": {
            "title": "Currencies",
            "type": "array",
            "description": "Keep projects in these currency codes, e.g. USD or EUR. Empty accepts all currencies. Combine with minBudget and maxBudget to compare amounts in the same currency.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxBidCount": {
            "title": "Maximum bid count",
            "minimum": -1,
            "type": "integer",
            "description": "Keep projects with at most this many bids; 0 finds projects with no bids, -1 disables the filter. Missing bid counts are excluded when enabled. Filters share maxItems across all queries.",
            "default": -1
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}