{
  "openapi": "3.0.1",
  "info": {
    "title": "US & Canada Jobs API",
    "description": "Search US and Canadian jobs by keyword, location, remote work and salary. Get full descriptions, source details and original employer links. Try three saved sample records free of job charges. Live jobs will be billed through Apify. No separate API account.",
    "version": "0.0",
    "x-build-id": "GQre3b9jP88030H6Z"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/thejobsapi~us-canada-jobs-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-thejobsapi-us-canada-jobs-api",
        "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/thejobsapi~us-canada-jobs-api/runs": {
      "post": {
        "operationId": "runs-sync-thejobsapi-us-canada-jobs-api",
        "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/thejobsapi~us-canada-jobs-api/run-sync": {
      "post": {
        "operationId": "run-sync-thejobsapi-us-canada-jobs-api",
        "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": {
          "mode": {
            "title": "What do you want to do?",
            "enum": [
              "sample",
              "live",
              "changes"
            ],
            "type": "string",
            "description": "Preview returns three saved Canadian examples, not current jobs, and ignores search filters. Live mode searches US or Canada and charges for each saved job through Apify. Catch-up returns current job states for ordered change events. Search filters are not allowed in catch-up mode.",
            "default": "sample"
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "CA"
            ],
            "type": "string",
            "description": "Country to search in live mode. Run once per country for separate US and Canada datasets.",
            "default": "US"
          },
          "q": {
            "title": "Keywords anywhere",
            "maxLength": 500,
            "type": "string",
            "description": "Search titles, employers and descriptions. Example: software engineer. Words match together; OR and quoted phrases are supported."
          },
          "maxItems": {
            "title": "Maximum jobs or updates",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum saved jobs or catch-up updates. Billed at the price shown on Pricing. Your run budget may reduce this limit.",
            "default": 100
          },
          "maxRequests": {
            "title": "Maximum API requests",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Hard request cap, including retries. Catch-up needs about one request per update plus one per page: use 30 for a 10-update test. Copy the saved resume input to continue.",
            "default": 10
          },
          "region": {
            "title": "State or province codes",
            "pattern": "^([A-Z]{2}(,[A-Z]{2})*)?$",
            "type": "string",
            "description": "US examples: CA,NY. Canada examples: ON,BC. Use uppercase two-letter codes separated by commas."
          },
          "city": {
            "title": "City",
            "maxLength": 500,
            "type": "string",
            "description": "City name, for example Austin or Toronto."
          },
          "remote": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "When selected, return jobs marked remote by the API. Remote does not mean work from any country; check job eligibility.",
            "default": false
          },
          "has_salary": {
            "title": "Jobs with salary only",
            "type": "boolean",
            "description": "Only jobs with a structured salary amount. Missing salary information is not invented.",
            "default": false
          },
          "window": {
            "title": "First discovered within",
            "enum": [
              "all",
              "1h",
              "24h",
              "7d",
              "30d",
              "6m"
            ],
            "type": "string",
            "description": "Filters when our catalogue first saw the job, not its employer posting date.",
            "default": "all"
          },
          "employment_type": {
            "title": "Employment type",
            "enum": [
              "FULL_TIME",
              "PART_TIME",
              "CONTRACTOR",
              "TEMPORARY",
              "INTERN",
              "VOLUNTEER",
              "PER_DIEM"
            ],
            "type": "string",
            "description": "Optional employment type supplied by the source."
          },
          "title": {
            "title": "Keywords in title only",
            "maxLength": 500,
            "type": "string",
            "description": "Narrow the job title. Example: nurse OR physician. This combines with the other filters."
          },
          "source": {
            "title": "ATS source",
            "maxLength": 500,
            "type": "string",
            "description": "Optional source system name, for example greenhouse, lever or ashby. Comma-separated names are allowed."
          },
          "cursor": {
            "title": "Resume cursor",
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "Copy next_cursor from a previous run OUTPUT summary. Keep the same country and search filters. Leave empty for a new search."
          },
          "resumeToken": {
            "title": "Catch-up resume token",
            "pattern": "^(US|CA):[0-9]+$",
            "type": "string",
            "description": "Paste resumeToken from a previous catch-up OUTPUT after applying its rows. Blank starts at the beginning of retained history. Keep a separate token for US and CA. This is not a search cursor."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}