{
  "openapi": "3.0.1",
  "info": {
    "title": "Remotive Scraper",
    "description": "[💰 $2.0 / 1K]  Extract remote job listings from Remotive — titles, companies, salaries, tags, locations, descriptions, and apply URLs. Filter across 30 categories, keywords, and 11 employment types.",
    "version": "1.0",
    "x-build-id": "jyuJpJkyJqboBVqIN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~remotive-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-remotive-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~remotive-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-remotive-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~remotive-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-remotive-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": {
          "categories": {
            "title": "Categories",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by job category. Leave empty to fetch jobs from all 30 categories. Each selected category triggers a separate API call; results are unioned and deduplicated.",
            "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-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 / Education",
                "Account Management",
                "Business Development",
                "Communications",
                "Compliance",
                "Engineering",
                "Information Technology",
                "Knowledge Management",
                "Operations",
                "Research",
                "Strategy",
                "Supply Chain",
                "Travel and Hospitality",
                "All others"
              ]
            },
            "default": []
          },
          "searchTerms": {
            "title": "Search Keywords",
            "type": "array",
            "description": "Free-text keywords like 'python', 'react', or 'senior'. Each term is queried separately; results are unioned and deduplicated. Combine with categories to refine.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "jobTypes": {
            "title": "Job Types",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by employment type. Empty = include every type. These are exactly the employment types Remotive's live job index uses, so every option here matches real jobs — but a few (Interim, Volunteer, Per-diem, Casual, Freelance) are genuinely rare on the board, so pairing one of them with a category or keyword can legitimately return very few jobs or none.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "contract",
                "part-time",
                "freelance",
                "internship",
                "temporary",
                "casual",
                "per-diem",
                "volunteer",
                "interim",
                "other"
              ],
              "enumTitles": [
                "Full-time",
                "Contract",
                "Part-time",
                "Freelance",
                "Internship",
                "Temporary",
                "Casual",
                "Per-diem",
                "Volunteer",
                "Interim",
                "Other"
              ]
            },
            "default": []
          },
          "includeDescription": {
            "title": "Include Full Description",
            "type": "boolean",
            "description": "Fetch the full job description body for each result. This needs one extra page fetch per job, so it runs far slower — roughly 0.7 jobs per second, against many jobs per second with it off. If your Maximum Results is larger than the run can finish in its time limit, it is automatically trimmed to what fits and the run tells you. It is also the only way to get the Publication Date field, which lives on the job's own listing page and is left empty otherwise — use Discovered On, which is always filled, if you just need to spot new postings. Disable to run much faster and cheaper if you only need title, company, salary, location, and apply URL.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum total jobs to save. Set to 0 for unlimited (returns the entire filtered catalog — can be tens of thousands of jobs depending on your filters). Whatever you ask for is checked against the run's time limit first, and a value that cannot finish in time (including 0) is automatically trimmed to what fits, so you never get a timed-out run with a half-finished result you still pay for. In the default 1-hour run time limit that means roughly 45,000 jobs, or roughly 2,000 with 'Include Full Description' turned on, since descriptions run at about 0.7 jobs per second. Raise the run's timeout, narrow your filters, or split the work across runs to collect more.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}