{
  "openapi": "3.0.1",
  "info": {
    "title": "Research Papers Citations Monitor - Google Scholar Alternative",
    "description": "Search research papers and citations in OpenAlex, the open scholarly index (CC0): title, authors, affiliations, venue, DOI, cited-by count, open-access PDF link, abstract. Track who cites your papers, or monitor a search for new papers only. A Google Scholar alternative on official open data.",
    "version": "0.1",
    "x-build-id": "zyXD82khWGbTasCqn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~research-papers-citations-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-research-papers-citations-monitor",
        "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/neverempty~research-papers-citations-monitor/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-research-papers-citations-monitor",
        "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/neverempty~research-papers-citations-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-research-papers-citations-monitor",
        "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": {
          "search": {
            "title": "Search text",
            "type": "string",
            "description": "Words to look for in the title and abstract of papers (see Search in). Put a phrase in double quotes for an exact match. Commas and | are read as spaces. Leave empty to list papers by author, institution, source or field only."
          },
          "searchScope": {
            "title": "Search in",
            "enum": [
              "title-abstract",
              "fulltext"
            ],
            "type": "string",
            "description": "Where the search text is looked for. Left empty, the run searches title and abstract, so the returned papers show the words. Full text also matches papers that only mention the words somewhere in their body: more results, many of them off-topic."
          },
          "authorIds": {
            "title": "Authors (ORCID or OpenAlex author ID)",
            "type": "array",
            "description": "Papers by any of these authors. Use ORCID iDs (0000-0002-1825-0097) or OpenAlex author IDs (A5023888391), one kind per run. IDs are exact: namesakes are not mixed in.",
            "items": {
              "type": "string"
            }
          },
          "authorName": {
            "title": "Author name (when you have no ID)",
            "type": "string",
            "description": "A plain author name. If exactly one author in OpenAlex has this name, the run uses that author. If several do, the run returns the candidates (name, ID, institution, number of works) free of charge and reads no paper: pick one and put the ID into Authors."
          },
          "institutionIds": {
            "title": "Institutions (ROR or OpenAlex institution ID)",
            "type": "array",
            "description": "Papers with at least one author affiliated with any of these institutions. Use ROR IDs (00f54p054 for Stanford University) or OpenAlex institution IDs (I97018004), one kind per run.",
            "items": {
              "type": "string"
            }
          },
          "sourceIds": {
            "title": "Journals or conferences (ISSN or OpenAlex source ID)",
            "type": "array",
            "description": "Papers published in any of these journals, conference proceedings or repositories. Use ISSNs (0028-0836 for Nature) or OpenAlex source IDs (S137773608), one kind per run.",
            "items": {
              "type": "string"
            }
          },
          "field": {
            "title": "Field of research",
            "enum": [
              "Agricultural and Biological Sciences",
              "Arts and Humanities",
              "Biochemistry, Genetics and Molecular Biology",
              "Business, Management and Accounting",
              "Chemical Engineering",
              "Chemistry",
              "Computer Science",
              "Decision Sciences",
              "Dentistry",
              "Earth and Planetary Sciences",
              "Economics, Econometrics and Finance",
              "Energy",
              "Engineering",
              "Environmental Science",
              "Health Professions",
              "Immunology and Microbiology",
              "Materials Science",
              "Mathematics",
              "Medicine",
              "Neuroscience",
              "Nursing",
              "Pharmacology, Toxicology and Pharmaceutics",
              "Physics and Astronomy",
              "Psychology",
              "Social Sciences",
              "Veterinary"
            ],
            "type": "string",
            "description": "Keep only papers whose primary topic is in this OpenAlex field."
          },
          "publicationYearFrom": {
            "title": "Published from year",
            "minimum": 1500,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep papers published in this year or later."
          },
          "publicationYearTo": {
            "title": "Published up to year",
            "minimum": 1500,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep papers published in this year or earlier."
          },
          "openAccess": {
            "title": "Open access",
            "enum": [
              "any",
              "open",
              "closed"
            ],
            "type": "string",
            "description": "Keep every paper, only open-access papers, or only papers that are not open access.",
            "default": "any"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest",
              "most-cited",
              "relevance"
            ],
            "type": "string",
            "description": "Order of a search. Relevance needs a search text. Monitoring ignores this.",
            "default": "newest"
          },
          "maxPapers": {
            "title": "Maximum papers (search)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many papers a search returns at most (up to 10,000 per run). Monitoring ignores this and returns every new paper.",
            "default": 100
          },
          "papers": {
            "title": "Papers to track citations for (DOI or OpenAlex work ID)",
            "type": "array",
            "description": "Citation tracking: give DOIs (10.1038/nature14539) or OpenAlex work IDs (W2919115771), up to 1,000. Each paper comes back as one row with its cited-by count, followed by the newest papers that cite it. Cannot be combined with the search fields above.",
            "items": {
              "type": "string"
            }
          },
          "maxCitingPapersPerPaper": {
            "title": "Newest citing papers per paper",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "For citation tracking without monitoring: how many of the newest citing papers to return for each paper (0 to 200). Each citing paper is one row. With monitoring on, every new citing paper is returned instead.",
            "default": 20
          },
          "includeAbstract": {
            "title": "Include the abstract",
            "type": "boolean",
            "description": "Rebuild the abstract text when OpenAlex holds one. Turn off for lighter rows.",
            "default": true
          },
          "monitoringMode": {
            "title": "Monitoring: return only what is new since the last run",
            "type": "boolean",
            "description": "With a search: the first run remembers the matching papers published in the last 365 days and returns nothing; later runs with the same search return only papers that were not there before. With papers: the first run remembers each citation count and its citing papers; later runs return only the papers whose citation count rose, with their new citing papers. The first run is free.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Reset what monitoring remembers",
            "type": "boolean",
            "description": "Forget what was remembered for this search (or these papers) and start again from a new first run.",
            "default": false
          },
          "openAlexApiKey": {
            "title": "Your OpenAlex API key (optional)",
            "type": "string",
            "description": "Not needed for normal use. Without a key OpenAlex gives each IP address a small daily budget, shared with other users of the same address. If a run reports that the daily budget is used up, a free key from openalex.org raises it tenfold. The key is sent only to api.openalex.org."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}