{
  "openapi": "3.0.1",
  "info": {
    "title": "DOE OSTI.gov Technical Reports Scraper",
    "description": "Scrape the U.S. Department of Energy's OSTI.GOV public research repository - search millions of DOE-funded technical reports, journal articles, conference papers, patents, theses, and datasets by keyword, author, national lab, subject, or date range, or fetch a single record by OSTI ID.",
    "version": "1.0",
    "x-build-id": "9IDfGbOA3QCpZxMRA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~doe-osti-technical-reports-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-doe-osti-technical-reports-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/crawlerbros~doe-osti-technical-reports-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-doe-osti-technical-reports-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/crawlerbros~doe-osti-technical-reports-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-doe-osti-technical-reports-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "byId"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search query (mode=search)",
            "type": "string",
            "description": "General free-text query — searches the full record (title, abstract, authors, identifiers). Leave empty to search by another filter (author, organization, subject, date range, etc.) alone. If every search filter is left empty, the actor falls back to a demo query (\"solar energy\") so the daily test run still returns data.",
            "default": ""
          },
          "titleQuery": {
            "title": "Title contains",
            "type": "string",
            "description": "Restrict results to records whose title matches these terms."
          },
          "authorQuery": {
            "title": "Author name",
            "type": "string",
            "description": "Search by author name, e.g. `Smith, John`."
          },
          "sponsorOrg": {
            "title": "Sponsoring organization",
            "type": "string",
            "description": "Search the DOE sponsoring/funding organization field, e.g. `Office of Energy Efficiency and Renewable Energy`."
          },
          "researchOrg": {
            "title": "Research organization",
            "type": "string",
            "description": "Search the performing research organization field (lab, university, contractor). Overrides `DOE national laboratory` if both are set."
          },
          "doeNationalLab": {
            "title": "DOE national laboratory (quick filter)",
            "enum": [
              "",
              "ames",
              "argonne",
              "brookhaven",
              "fermilab",
              "lbnl",
              "llnl",
              "lanl",
              "netl",
              "nrel",
              "ornl",
              "pnnl",
              "pppl",
              "sandia",
              "srnl",
              "slac",
              "jlab",
              "inl"
            ],
            "type": "string",
            "description": "Convenience shortcut for `Research organization` — restrict results to one of the 17 DOE national laboratories.",
            "default": ""
          },
          "subjectQuery": {
            "title": "Subject / topic",
            "type": "string",
            "description": "Search DOE standardized subject categories and keywords, e.g. `photovoltaics`, `nuclear fuel cycle`, `battery storage`."
          },
          "productType": {
            "title": "Report / product type",
            "enum": [
              "",
              "Technical Report",
              "Journal Article",
              "Conference",
              "Patent",
              "Book",
              "Thesis/Dissertation",
              "Program Document",
              "Software",
              "Dataset"
            ],
            "type": "string",
            "description": "Restrict results to one STI product type. Applied after fetching (OSTI.GOV does not support this as a server-side search parameter).",
            "default": ""
          },
          "publicationDateStart": {
            "title": "Publication date from",
            "type": "string",
            "description": "Earliest publication date, format `YYYY-MM-DD`."
          },
          "publicationDateEnd": {
            "title": "Publication date to",
            "type": "string",
            "description": "Latest publication date, format `YYYY-MM-DD`."
          },
          "entryDateStart": {
            "title": "Entry date from",
            "type": "string",
            "description": "Earliest date the record was added to OSTI.GOV, format `YYYY-MM-DD`."
          },
          "entryDateEnd": {
            "title": "Entry date to",
            "type": "string",
            "description": "Latest date the record was added to OSTI.GOV, format `YYYY-MM-DD`."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Filter by publication language, e.g. `English`, `German`, `Japanese`."
          },
          "countryOfPublication": {
            "title": "Country of publication",
            "type": "string",
            "description": "Filter by country of publication, e.g. `United States`, `Germany`."
          },
          "requireFulltext": {
            "title": "Full text available only",
            "type": "boolean",
            "description": "Only return records that have a downloadable full-text PDF on OSTI.GOV.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "",
              "publication_date",
              "entry_date"
            ],
            "type": "string",
            "description": "Field to sort results by. Leave as default for relevance ranking.",
            "default": ""
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "",
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Ascending or descending, used together with `Sort by`.",
            "default": ""
          },
          "ostiId": {
            "title": "OSTI ID (mode=byId)",
            "type": "string",
            "description": "Numeric OSTI identifier to fetch a single record, e.g. `3376627`. Software records use a `code-<digits>` identifier instead, e.g. `code-178644`."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard cap on emitted records (mode=search).",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}