{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Scholar Alternative: Academic Papers (OpenAlex)",
    "description": "Search 250 million academic papers by keyword, DOI, citing paper, institution or journal. Citation counts, abstracts, open access PDF links and DOIs from OpenAlex, no scraping. Every record links to the source.",
    "version": "0.0",
    "x-build-id": "Eqsza5zfLaaPu1FPD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/groundtruth~academic-papers/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-groundtruth-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/groundtruth~academic-papers/runs": {
      "post": {
        "operationId": "runs-sync-groundtruth-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/groundtruth~academic-papers/run-sync": {
      "post": {
        "operationId": "run-sync-groundtruth-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",
        "properties": {
          "mode": {
            "title": "What do you want to do?",
            "enum": [
              "doi_lookup",
              "search",
              "cited_by",
              "institution",
              "source"
            ],
            "type": "string",
            "description": "search: keyword search with filters. doi_lookup: fetch papers by DOI. cited_by: papers that cite one work. institution: papers from a university or lab. source: papers from one journal.",
            "default": "doi_lookup"
          },
          "dois": {
            "title": "DOIs (for DOI lookup)",
            "type": "array",
            "description": "One DOI per line, for example 10.1038/nature14539, or the same with https://doi.org/ in front. OpenAlex ids such as W2919115771 also work. Up to 2000. A DOI OpenAlex does not know is returned with lookup_status not_found and is not charged.",
            "default": [
              "10.1038/nature14539",
              "10.1126/science.1127647",
              "10.1371/journal.pmed.0020124"
            ],
            "items": {
              "type": "string"
            }
          },
          "query": {
            "title": "Keywords (for search; optional for institution and journal)",
            "type": "string",
            "description": "Words to look for, for example graph neural networks. Put a phrase in double quotes to match it exactly. Required in search mode. In institution and journal mode it narrows the papers to that topic."
          },
          "search_scope": {
            "title": "Where to look for the keywords",
            "enum": [
              "title_and_abstract",
              "full_text"
            ],
            "type": "string",
            "description": "Title and abstract gives precise results. Full text also matches the body of papers, so it returns far more and looser matches.",
            "default": "title_and_abstract"
          },
          "cited_work": {
            "title": "Paper to find citations of (for cited by)",
            "type": "string",
            "description": "A DOI or OpenAlex id. You get the papers that cite it."
          },
          "institution": {
            "title": "Institution (for institution mode)",
            "type": "string",
            "description": "A name such as Massachusetts Institute of Technology, a ROR id such as https://ror.org/042nb2s44, or an OpenAlex id such as I63966007. A name uses the best match, and every record says which institution was matched. Papers by affiliated departments and labs are included."
          },
          "source": {
            "title": "Journal or venue (for journal mode)",
            "type": "string",
            "description": "A name such as Nature, an ISSN such as 1476-4687, or an OpenAlex id such as S137773608. A name uses the best match, and every record says which venue was matched."
          },
          "from_year": {
            "title": "Published from year",
            "minimum": 1000,
            "maximum": 2100,
            "type": "integer",
            "description": "Only papers published in this year or later."
          },
          "to_year": {
            "title": "Published up to year",
            "minimum": 1000,
            "maximum": 2100,
            "type": "integer",
            "description": "Only papers published in this year or earlier."
          },
          "open_access_only": {
            "title": "Open access only",
            "type": "boolean",
            "description": "Only papers with a free full text somewhere.",
            "default": false
          },
          "work_types": {
            "title": "Paper types",
            "type": "array",
            "description": "Leave empty for every type. Choose from article, preprint, review, book, book-chapter, dissertation, dataset, report, letter, editorial, standard, other.",
            "items": {
              "type": "string"
            }
          },
          "min_citations": {
            "title": "Minimum citations",
            "minimum": 0,
            "type": "integer",
            "description": "Only papers cited at least this many times.",
            "default": 0
          },
          "exclude_retracted": {
            "title": "Leave out retracted papers",
            "type": "boolean",
            "description": "Skip papers marked as retracted.",
            "default": false
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "citations",
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Relevance only works with keywords. Without keywords the default is most cited. Citation sort returns the most cited papers among all matches, which can include loose keyword matches."
          },
          "max_results": {
            "title": "Maximum papers",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "How many papers to return. Up to 10000 works without a key. Up to 50000 needs your own free OpenAlex API key below. You are charged per paper returned. Not used for DOI lookup.",
            "default": 25
          },
          "include_abstract": {
            "title": "Include abstracts",
            "type": "boolean",
            "description": "Abstracts are rebuilt from OpenAlex's index. Turn off for smaller output.",
            "default": true
          },
          "openalex_api_key": {
            "title": "Your OpenAlex API key (optional)",
            "type": "string",
            "description": "OpenAlex gives anyone without a key a small free allowance that is shared by everyone on the same network address. For heavy use, paste your own free key (openalex.org/settings/api) to get a separate allowance of $1 a day. Leave empty to use the shared one."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}