{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenAlex Research Papers, Authors & Institutions Export",
    "description": "Search OpenAlex, the open catalog of 300M+ scholarly works, and export works, authors, institutions, journals or topics as clean JSON: DOI, authors with ORCID and affiliations, citations, open access links, topics and abstracts. No API key needed to start; add your free key for big exports.",
    "version": "0.1",
    "x-build-id": "JAgscYhN737owID3F"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kingly_contest_7cb~openalex-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kingly_contest_7cb-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/kingly_contest_7cb~openalex-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kingly_contest_7cb-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/kingly_contest_7cb~openalex-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kingly_contest_7cb-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": {
          "apiKey": {
            "title": "OpenAlex API key (optional)",
            "type": "string",
            "description": "Optional. Leave empty to run on OpenAlex's free keyless allowance, which is small, shared per IP address and capped at 10,000 results per query. For bigger or regular exports, paste your own free key from openalex.org/settings/api. It's stored encrypted and only sent to OpenAlex."
          },
          "entityType": {
            "title": "What to export",
            "enum": [
              "works",
              "authors",
              "institutions",
              "sources",
              "topics"
            ],
            "type": "string",
            "description": "The kind of OpenAlex record to return.",
            "default": "works"
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Full-text search. For works it looks at titles, abstracts and full text; for the other types, names. Leave empty to list by filters only."
          },
          "yearFrom": {
            "title": "Published from (year)",
            "minimum": 1000,
            "maximum": 2100,
            "type": "integer",
            "description": "Works only."
          },
          "yearTo": {
            "title": "Published to (year)",
            "minimum": 1000,
            "maximum": 2100,
            "type": "integer",
            "description": "Works only. Inclusive."
          },
          "openAccessOnly": {
            "title": "Open access only",
            "type": "boolean",
            "description": "Works: only open access works. Sources: only open access journals.",
            "default": false
          },
          "institutions": {
            "title": "Institutions",
            "type": "array",
            "description": "OpenAlex IDs (I136199984), ROR IDs (https://ror.org/03vek6s52) or names. Names are looked up and the best match is logged, so IDs are safer. Applies to works (author affiliations), authors (affiliations) and institutions.",
            "items": {
              "type": "string"
            }
          },
          "authorOrcids": {
            "title": "Author ORCID iDs",
            "type": "array",
            "description": "e.g. 0000-0003-1613-5981. Works by these authors, or the author records themselves.",
            "items": {
              "type": "string"
            }
          },
          "dois": {
            "title": "DOI list",
            "type": "array",
            "description": "Look up specific works by DOI (10.7717/peerj.4375 or https://doi.org/...). Works only.",
            "items": {
              "type": "string"
            }
          },
          "additionalFilter": {
            "title": "Extra OpenAlex filter (advanced)",
            "type": "string",
            "description": "Raw OpenAlex filter syntax added to the query, e.g. type:article,language:en. See the OpenAlex docs for all filters."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "relevance",
              "cited_by_count",
              "publication_date_desc",
              "publication_date_asc",
              "works_count",
              "name"
            ],
            "type": "string",
            "description": "Leave empty for OpenAlex's default order (relevance when searching)."
          },
          "maxItems": {
            "title": "Max records",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many records. 0 = no limit (be careful: some queries match millions).",
            "default": 100
          },
          "includeAbstract": {
            "title": "Include abstracts",
            "type": "boolean",
            "description": "Works only. Rebuilds the abstract text from OpenAlex's inverted index. Not every work has one.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}