{
  "openapi": "3.0.1",
  "info": {
    "title": "Academic Papers Scraper: OpenAlex Research Paper Alerts",
    "description": "Returns OpenAlex research papers by keyword, author, institution or topic: title, DOI, date, venue, open access link, authors, institutions, citation count and CC0 abstracts, with optional arXiv and Crossref enrichment. Only new papers mode for research paper alerts.",
    "version": "1.0",
    "x-build-id": "PCKA797BxXhPiIJEQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/agents001~academic-research-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-agents001-academic-research-feed",
        "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/agents001~academic-research-feed/runs": {
      "post": {
        "operationId": "runs-sync-agents001-academic-research-feed",
        "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/agents001~academic-research-feed/run-sync": {
      "post": {
        "operationId": "run-sync-agents001-academic-research-feed",
        "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": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "One search per entry, for example 'CRISPR base editing' or 'carbon capture'. Words are combined with AND. Use quotes for an exact phrase and OR or NOT in capitals for Boolean searches. Leave empty to search by author, institution or topic only.",
            "items": {
              "type": "string"
            }
          },
          "searchIn": {
            "title": "Search in",
            "enum": [
              "titleAbstractKeywords",
              "titleAndAbstract",
              "title",
              "everything"
            ],
            "type": "string",
            "description": "Which text the search queries are matched against.",
            "default": "titleAbstractKeywords"
          },
          "authors": {
            "title": "Authors",
            "type": "array",
            "description": "Only papers by any of these authors. Give an ORCID (0000-0002-1825-0097), an OpenAlex author ID (A5023888391) or a name. Names take the best match, so ORCIDs are more precise.",
            "items": {
              "type": "string"
            }
          },
          "institutions": {
            "title": "Institutions",
            "type": "array",
            "description": "Only papers with an author from any of these institutions, including their departments and labs. Give a ROR ID (https://ror.org/042nb2s44), an OpenAlex institution ID (I63966007) or a name.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Only papers tagged with any of these research topics. Give an OpenAlex topic ID (T10028) or a topic name such as 'Topic Modeling'.",
            "items": {
              "type": "string"
            }
          },
          "fromDate": {
            "title": "Published on or after",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Earliest publication date, as YYYY-MM-DD."
          },
          "toDate": {
            "title": "Published on or before",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Latest publication date, as YYYY-MM-DD. With 'Newest first' sorting and no date here, the search ends today, so journal issues dated in the future do not crowd out new papers."
          },
          "publishedWithinDays": {
            "title": "Published in the last N days",
            "minimum": 0,
            "maximum": 36500,
            "type": "integer",
            "description": "Only papers published in the last N days. Handy for scheduled runs. 0 means no limit.",
            "default": 0
          },
          "openAccessOnly": {
            "title": "Open access only",
            "type": "boolean",
            "description": "Only papers that are free to read somewhere (gold, green, hybrid, bronze or diamond open access).",
            "default": false
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "newest",
              "mostCited",
              "relevance"
            ],
            "type": "string",
            "description": "Newest first, most cited first, or best match to the search (best match needs a search query).",
            "default": "newest"
          },
          "maxItems": {
            "title": "Maximum papers",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many paper records in total. With several search queries the limit is shared between them. You pay per paper record returned.",
            "default": 100
          },
          "onlyNew": {
            "title": "Only papers not seen in previous runs",
            "type": "boolean",
            "description": "Remember which papers were already returned for this exact search and filters, and only return new ones. The first run returns everything that matches. Ideal for scheduled alerts. Changing the search or filters starts a fresh history.",
            "default": false
          },
          "includeAbstracts": {
            "title": "Include abstracts",
            "type": "boolean",
            "description": "Add the abstract where its licence allows: OpenAlex abstracts (CC0) and arXiv abstracts (CC0). Crossref abstracts are never included.",
            "default": true
          },
          "enrichWithArxiv": {
            "title": "Add arXiv details for preprints",
            "type": "boolean",
            "description": "For papers that are on arXiv, add the arXiv ID, categories, versions, comments and the arXiv abstract. arXiv allows one request every 3 seconds, so this adds about 3 seconds per 50 arXiv papers. Links only; no PDFs are downloaded.",
            "default": false
          },
          "enrichWithCrossref": {
            "title": "Add Crossref details",
            "type": "boolean",
            "description": "For papers with a DOI, add Crossref publisher details, licence links, funders and awards, ISSNs and subjects. About one second per 20 papers.",
            "default": false
          },
          "openAlexApiKey": {
            "title": "OpenAlex API key (optional)",
            "type": "string",
            "description": "Without a key the Actor reads only the first page of results per search (up to 100 papers) and shares a small free daily allowance with other users. A free key from openalex.org (Settings, API key) unlocks paging through all results and gives you your own daily allowance of about 1,000 searches."
          },
          "stateStoreName": {
            "title": "State store name",
            "pattern": "^[a-zA-Z0-9-]{1,63}$",
            "type": "string",
            "description": "Only used when 'Only papers not seen in previous runs' is on. Name of the key-value store in your account that remembers which papers were already returned. Each different search gets its own record inside it. Change it only to keep separate histories. If a run reports that it cannot open the store, enter a different name here.",
            "default": "agents001-academic-research-feed-state"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}