{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenAlex Scraper",
    "description": "[💰 $7.0 / 1K] Extract scholarly works, authors, institutions, journals, publishers, funders, and topics from OpenAlex. Search by keyword, narrow by year, country, open access, and citations, or pull specific records by ID, DOI, or ORCID.",
    "version": "1.0",
    "x-build-id": "DVff7pcWepFdRgiji"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~openalex-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-openalex-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~openalex-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-openalex-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~openalex-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-openalex-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": {
          "entity": {
            "title": "What to scrape",
            "enum": [
              "works",
              "authors",
              "institutions",
              "sources",
              "publishers",
              "funders",
              "topics"
            ],
            "type": "string",
            "description": "The kind of record to collect. 'Works' are papers, books, and datasets. Pick 'Authors' for researcher profiles, 'Institutions' for universities and labs, 'Journals & sources' for where works are published, or 'Publishers', 'Funders', or 'Topics' for the other catalogs.",
            "default": "works"
          },
          "searchQuery": {
            "title": "Search Keyword",
            "type": "string",
            "description": "Full-text search. For works it matches titles and abstracts; for authors, institutions, and the other catalogs it matches names. Example: 'machine learning', 'CRISPR', 'Yann LeCun', 'Stanford University'. Leave blank to browse everything and rely on the filters below."
          },
          "ids": {
            "title": "IDs or URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "Fetch specific records directly. Paste OpenAlex IDs (e.g. 'W2741809807', 'A5023888391'), OpenAlex URLs, DOIs (e.g. '10.7717/peerj.4375'), or ORCIDs / ROR IDs. Must match the catalog chosen above. When you use this, the keyword and filters are ignored — these records are always fetched. Up to 100,000 identifiers are processed per run.",
            "items": {
              "type": "string"
            }
          },
          "fromPublicationDate": {
            "title": "From Date (works only)",
            "type": "string",
            "description": "Only include works published on or after this date (YYYY-MM-DD). Leave blank for no lower bound. Ignored for authors, institutions, and the other catalogs."
          },
          "toPublicationDate": {
            "title": "To Date (works only)",
            "type": "string",
            "description": "Only include works published on or before this date (YYYY-MM-DD). Leave blank for no upper bound. Ignored for authors, institutions, and the other catalogs."
          },
          "countryCode": {
            "title": "Country",
            "enum": [
              "",
              "US",
              "GB",
              "DE",
              "CN",
              "FR",
              "CA",
              "AU",
              "JP",
              "IN",
              "IT",
              "ES",
              "NL",
              "BR",
              "CH",
              "SE",
              "KR",
              "RU",
              "BE",
              "PL",
              "TR",
              "MX",
              "AT",
              "DK",
              "NO",
              "FI",
              "IL",
              "PT",
              "GR",
              "IE",
              "NZ",
              "ZA",
              "SG",
              "CZ",
              "AR",
              "SA",
              "IR",
              "EG",
              "TW",
              "HK",
              "UA"
            ],
            "type": "string",
            "description": "Restrict to a country. For works this matches an author's institution country; for authors and institutions it matches their country. Leave blank for all countries. Ignored for publishers, funders, and topics.",
            "default": ""
          },
          "openAccessOnly": {
            "title": "Open access only",
            "type": "boolean",
            "description": "Only include records that are open access — freely readable. For works this is the paper's OA status; for journals & sources it is the source's OA status. Ignored for authors, institutions, publishers, funders, and topics.",
            "default": false
          },
          "minCitations": {
            "title": "Minimum citations",
            "minimum": 0,
            "type": "integer",
            "description": "Only include records cited at least this many times. Great for surfacing high-impact works or influential authors. Leave at 0 for no minimum. Applies to works, authors, institutions, journals, publishers, and funders.",
            "default": 0
          },
          "advancedFilter": {
            "title": "Advanced filter (optional)",
            "type": "string",
            "description": "Power users only. A raw OpenAlex filter string, merged with the filters above. Example: 'type:article,authorships.institutions.ror:https://ror.org/00f54p054'. See the OpenAlex docs for the full filter list. Leave blank if you are using the friendly filters above."
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "cited_by_count",
              "publication_date",
              "relevance_score",
              "works_count"
            ],
            "type": "string",
            "description": "How to order results. 'Most cited' surfaces high-impact records; 'Newest' is best for scheduled runs picking up fresh records; 'Relevance' works best together with a search keyword.",
            "default": "cited_by_count"
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard cap on how many records to collect. Default 100 — increase for bigger runs, or set to 0 for as many as the catalog returns (an internal safety cap of 100,000 still prevents runaway pagination). Results come back in pages of 200, so the actual count is rounded up to the next multiple of 200 (e.g. 10 returns 200; 250 returns 400). Ignored when you fetch specific IDs/URLs — those are always all collected (up to 100,000).",
            "default": 100
          },
          "email": {
            "title": "Your email (optional)",
            "type": "string",
            "description": "Optional. Providing an email puts requests in OpenAlex's faster 'polite pool'. It is only sent to OpenAlex and never stored. Leave blank to run without it."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}