{
  "openapi": "3.0.1",
  "info": {
    "title": "Remotive Jobs Scraper: Remote Job Listings from the Website",
    "description": "Scrape remote job listings from the Remotive website by title words, category, location, job type and date. One row per job with company, salary, listing type (curated or aggregated), expiry date, canonical URL and description with links kept. Export to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "mX51vUtneUAzako5t"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mrbridge~remotive-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mrbridge-remotive-jobs-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/mrbridge~remotive-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-mrbridge-remotive-jobs-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/mrbridge~remotive-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-mrbridge-remotive-jobs-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": {
          "searchTerms": {
            "title": "Search terms",
            "maxItems": 10,
            "type": "array",
            "description": "Up to 10 terms, 50 bytes at most each. Lowercased and deduplicated. A job is kept when one term appears in its title (the job description is not searched). Leave empty to keep every job.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Remotive categories to keep, matched on the category of the job page address. Leave empty for every category.",
            "items": {
              "type": "string",
              "enum": [
                "software-development",
                "customer-service",
                "design",
                "marketing",
                "sales",
                "product",
                "project-management",
                "artificial-intelligence",
                "data",
                "devops",
                "finance",
                "human-resources",
                "qa",
                "writing",
                "legal",
                "medical",
                "education",
                "account-management",
                "business-development",
                "communications",
                "compliance",
                "engineering",
                "information-technology",
                "knowledge-management",
                "operations",
                "research",
                "strategy",
                "supply-chain",
                "travel-and-hospitality",
                "all-others"
              ],
              "enumTitles": [
                "Software Development",
                "Customer Service",
                "Design",
                "Marketing",
                "Sales",
                "Product Management",
                "Project Management",
                "Artificial Intelligence",
                "Data and Analytics",
                "Devops",
                "Finance",
                "Human Resources",
                "Quality Assurance",
                "Writing",
                "Legal",
                "Medical",
                "Teaching",
                "Account Management",
                "Business Development",
                "Communications",
                "Compliance",
                "Engineering",
                "Information Technology",
                "Knowledge Management",
                "Operations",
                "Research",
                "Strategy",
                "Supply Chain",
                "Travel and Hospitality",
                "All others"
              ]
            },
            "default": []
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep only jobs that match one of these entries (case-insensitive). A place name such as usa or europe is searched in the location text of the offers Remotive publishes itself. A two-letter country code such as de or us is matched against the countries an offer accepts, which is the only location the offers Remotive aggregates from other sites give (a Worldwide offer accepts them all). Leave empty to keep all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "tags": {
            "title": "Tags",
            "type": "array",
            "description": "Keep only jobs with one of these tags (exact match, case-insensitive). The job pages of remotive.com publish no tags, so any entry here keeps no job: leave it empty and use search terms instead.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "jobTypes": {
            "title": "Job types",
            "type": "array",
            "description": "Keep only jobs with one of these types: full-time, part-time, contract, freelance or internship (case-insensitive, full_time and full-time are the same). Leave empty to keep all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within days",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Keep only jobs published in the last N days (1 to 365)."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 3000,
            "type": "integer",
            "description": "Hard cap on the number of jobs returned (and billed) in one run, 3000 at most. Each job costs one page request, so a large cap makes a long run.",
            "default": 100
          },
          "includeDescription": {
            "title": "Include description",
            "type": "boolean",
            "description": "Add the job description as text and as HTML. E-mail addresses and phone numbers are masked, links are kept.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}