{
  "openapi": "3.0.1",
  "info": {
    "title": "Academic Papers Search: Research Papers via OpenAlex & Crossref",
    "description": "Search academic and research papers in OpenAlex and Crossref (incl. arXiv preprints) by keywords, title, author, DOI, arXiv id, date range and open access. One clean record per paper: authors, venue, DOI, citation count, open-access PDF link, and the abstract where its licence allows.",
    "version": "1.1",
    "x-build-id": "Qade378jgZ0DfhymK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/humble-echidna~academic-papers/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-humble-echidna-academic-papers",
        "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/humble-echidna~academic-papers/runs": {
      "post": {
        "operationId": "runs-sync-humble-echidna-academic-papers",
        "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/humble-echidna~academic-papers/run-sync": {
      "post": {
        "operationId": "run-sync-humble-echidna-academic-papers",
        "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": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Searches, DOIs or arXiv ids",
            "type": "array",
            "description": "One per line. Keywords run a search (e.g. CRISPR base editing). A DOI (10.1038/nmat1849 or https://doi.org/10.1038/nmat1849) or an arXiv id (2010.11929, arXiv:hep-th/9901001 or an arxiv.org/abs/ link) looks up that one work directly; the filters below don't apply to direct lookups.",
            "default": [
              "CRISPR base editing"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerQuery": {
            "title": "Max works per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "At most this many works per search line: 1 to 1,000, default 20. Each source is asked for this many best matches (in the order set by sort); works found by both are merged, and the two lists are interleaved by rank and cut to this number.",
            "default": 20
          },
          "searchIn": {
            "title": "Search in",
            "enum": [
              "all",
              "title"
            ],
            "type": "string",
            "description": "Where the keywords must appear. `all` (the default): everything the source indexes (title, abstract, full text where available). `title`: the title only. Doesn't apply to DOI or arXiv lookups.",
            "default": "all"
          },
          "author": {
            "title": "Author",
            "type": "string",
            "description": "Only works with an author of this name in the byline, e.g. Jennifer Doudna. Leave empty for any author."
          },
          "publishedFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Only works published on or after this: a year (2020), a month (2020-06) or a date (2020-06-15). Leave empty (the default) for no lower limit."
          },
          "publishedTo": {
            "title": "Published to",
            "type": "string",
            "description": "Only works published on or before this: a year (2024), a month (2024-12) or a date (2024-12-31). Leave empty (the default) for no upper limit."
          },
          "openAccessOnly": {
            "title": "Open access only",
            "type": "boolean",
            "description": "Default false. When true, only works that are free to read. OpenAlex knows the open-access status of every work; a work only Crossref found counts as open access when its published version carries a Creative Commons licence.",
            "default": false
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "relevance",
              "newest",
              "mostCited"
            ],
            "type": "string",
            "description": "Which works count as the top matches for each search. `relevance` (the default): best match. `newest`: by publication date, leaving out works a source dates after the end of next year (data errors such as 2047); next year's forthcoming journal issues are kept. `mostCited`: most cited first.",
            "default": "relevance"
          },
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Which catalogues to search: `openalex` (OpenAlex, incl. arXiv preprints) and/or `crossref` (Crossref). Default both: works found in both are merged into one result.",
            "items": {
              "type": "string",
              "enum": [
                "openalex",
                "crossref"
              ],
              "enumTitles": [
                "OpenAlex (incl. arXiv preprints)",
                "Crossref"
              ]
            },
            "default": [
              "openalex",
              "crossref"
            ]
          },
          "onlyNew": {
            "title": "Only new works",
            "type": "boolean",
            "description": "Default false. When true, return only works this search hasn't returned before (remembered in your Apify account, per search line and filter set). The first run returns everything. Good for scheduled alerts; combine with sort `newest`.",
            "default": false
          },
          "openalexApiKey": {
            "title": "OpenAlex API key (optional)",
            "type": "string",
            "description": "Your own free OpenAlex API key (openalex.org/settings/api). Without one, OpenAlex allows a small keyless daily budget (about 100 search requests of up to 100 works each, reset at midnight UTC); a free key gives 10x that. Only ever sent to OpenAlex, in a request header."
          },
          "maxResults": {
            "title": "Max results per run",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many works in total across all searches, e.g. 20. Minimum 1; leave empty (the default) for no limit. The run also stops cleanly at the maximum cost per run you set in the run options, whichever comes first. Set it to keep a run small and quick."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}