{
  "openapi": "3.0.1",
  "info": {
    "title": "Remotive Job Search",
    "description": "Search and scrape remote job listings from Remotive.com. Filter by location, job type, salary, category, seniority, and skills.",
    "version": "1.0",
    "x-build-id": "PzYsaNXwGDACiX5kx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/canadesk~remotive-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-canadesk-remotive-jobs",
        "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/canadesk~remotive-jobs/runs": {
      "post": {
        "operationId": "runs-sync-canadesk-remotive-jobs",
        "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/canadesk~remotive-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-canadesk-remotive-jobs",
        "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": {
          "query": {
            "title": "Search Query",
            "type": "string",
            "description": "Free-text search query for job titles, companies, or keywords. Leave blank to return all jobs matching other filters."
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Filter jobs by location. Select one or more regions or countries.",
            "items": {
              "type": "string",
              "enum": [
                "Worldwide",
                "USA",
                "Canada",
                "UK",
                "Germany",
                "France",
                "Brazil",
                "Europe",
                "Northern America",
                "Latin America",
                "Asia",
                "Africa",
                "Australia",
                "USA timezones",
                "CET timezone"
              ]
            },
            "default": [
              "Worldwide"
            ]
          },
          "jobTypes": {
            "title": "Employment Types",
            "type": "array",
            "description": "Filter by employment type. Leave empty to include all types.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "contract",
                "part-time",
                "freelance",
                "internship",
                "temporary",
                "casual",
                "per-diem",
                "other"
              ]
            },
            "default": [
              "full-time",
              "contract"
            ]
          },
          "minSalary": {
            "title": "Minimum Salary",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum value for the max_salary field (numeric filter, USD per year). Set to 0 to disable salary filtering.",
            "default": 0
          },
          "categories": {
            "title": "Job Categories",
            "type": "array",
            "description": "Filter by job category. Leave empty to include all categories.",
            "items": {
              "type": "string",
              "enum": [
                "Software Development",
                "Sales",
                "Customer Service",
                "Medical",
                "Marketing",
                "Finance",
                "Project Management",
                "Data and Analytics",
                "Product Management",
                "Human Resources",
                "Teaching",
                "Artificial Intelligence",
                "Design",
                "Legal",
                "Devops",
                "Operations",
                "Quality Assurance",
                "Information Technology",
                "Engineering",
                "Writing",
                "Business Development",
                "Account Management",
                "Compliance",
                "Supply Chain",
                "Communications",
                "Strategy",
                "Travel and Hospitality",
                "Research",
                "Knowledge Management",
                "All Others"
              ]
            },
            "default": []
          },
          "seniority": {
            "title": "Career Level",
            "type": "array",
            "description": "Filter by seniority / career level. Leave empty to include all levels.",
            "items": {
              "type": "string",
              "enum": [
                "entry-level",
                "junior",
                "mid-level",
                "senior",
                "lead",
                "executive",
                "intern",
                "internship",
                "student"
              ]
            },
            "default": []
          },
          "skills": {
            "title": "Skills",
            "type": "array",
            "description": "Filter by required skills (e.g. python, docker, react). Combined using the Skills Operator below.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "skillsOperator": {
            "title": "Skills Operator",
            "enum": [
              "or",
              "and"
            ],
            "type": "string",
            "description": "How to combine multiple skills: 'or' returns jobs matching any skill; 'and' returns jobs matching all skills.",
            "default": "or"
          },
          "maxPages": {
            "title": "Max Pages",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of result pages to fetch (35 jobs per page). Set to 0 for unlimited.",
            "default": 10
          },
          "fetchDetails": {
            "title": "Fetch Job Details (apply URL + description)",
            "type": "boolean",
            "description": "Enable to fetch the real external apply URL and full job description for each job. Adds two extra API calls per job and incurs an additional per-job charge.",
            "default": true
          },
          "descriptionFallback": {
            "title": "HTML Description Fallback",
            "type": "boolean",
            "description": "When Fetch Job Details is enabled, also scrape the Remotive HTML job page to retrieve descriptions for aggregated/external jobs where the JSON API returns nothing. Slower — one HTTP request per job with a configurable delay.",
            "default": false
          },
          "descriptionFallbackDelayMs": {
            "title": "HTML Fallback Delay (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Milliseconds to wait between each HTML page scrape when the HTML Description Fallback is enabled. Increase to reduce load on Remotive's servers.",
            "default": 500
          },
          "pageDelayMs": {
            "title": "Page Delay (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Base delay between fetching result pages, in milliseconds. Actual delay is randomized ±50% to avoid fingerprinting. Increase if you hit rate limits.",
            "default": 500
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by this actor."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}