{
  "openapi": "3.0.1",
  "info": {
    "title": "PubMed Scraper: Biomedical Literature & Abstracts",
    "description": "Search 35M+ PubMed citations and get complete records: title, structured abstract, authors and affiliations, journal, MeSH terms, keywords, DOI and PMC ID. Straight from NCBI E-utilities, no key required.",
    "version": "0.0",
    "x-build-id": "N2Os3LbB1Pd2gZ6jH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/arman-bd~pubmed-articles-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-arman-bd-pubmed-articles-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/arman-bd~pubmed-articles-scraper/runs": {
      "post": {
        "operationId": "runs-sync-arman-bd-pubmed-articles-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/arman-bd~pubmed-articles-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-arman-bd-pubmed-articles-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": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "PubMed query syntax, one query per entry. exactly what you would type into pubmed.ncbi.nlm.nih.gov. Field tags work: 'CRISPR[Title]', 'Doudna JA[Author]', 'Nature[Journal]', '\"gene editing\"[MeSH Terms]'. Combine with AND / OR / NOT. Plain keywords work too and are expanded by PubMed's own term mapping.",
            "items": {
              "type": "string"
            }
          },
          "pmids": {
            "title": "PubMed IDs",
            "type": "array",
            "description": "Fetch specific articles instead of, or alongside, searching. Accepts a bare PMID (33301246), 'PMID: 33301246', or a pubmed.ncbi.nlm.nih.gov URL. Entries that hold no ID are listed in RUN_SUMMARY.invalidPmids, and IDs that resolve to no record in RUN_SUMMARY.unresolvedPmids. 'Max results' caps this list too.",
            "items": {
              "type": "string"
            }
          },
          "fromDate": {
            "title": "Published from",
            "type": "string",
            "description": "Earliest publication date, as YYYY-MM-DD, YYYY-MM or YYYY. Applied as PubMed's own 'pdat' date filter, not as text in the query. A month or a bare year resolves to its first day. Leave empty for no lower bound."
          },
          "toDate": {
            "title": "Published to",
            "type": "string",
            "description": "Latest publication date, same formats as 'Published from'. A month resolves to that month's real last day (28, 29, 30 or 31) and a bare year to 31 December, so 2024-02 and 2024 both mean the whole period. A date that does not exist is rejected. Leave empty for no upper bound."
          },
          "articleTypes": {
            "title": "Article types",
            "type": "array",
            "description": "Keep only these PubMed publication types. They are ORed together and ANDed onto every query, so picking Review and Meta-Analysis returns records that are either. Empty means no type filter.",
            "items": {
              "type": "string",
              "enum": [
                "Review",
                "Systematic Review",
                "Meta-Analysis",
                "Clinical Trial",
                "Randomized Controlled Trial",
                "Observational Study",
                "Case Reports",
                "Comparative Study",
                "Editorial",
                "Letter",
                "Comment",
                "Practice Guideline"
              ]
            },
            "default": []
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Restrict to one publication language using PubMed's three-letter code. 'eng', 'fre', 'ger', 'spa', 'chi', 'jpn'. Empty means every language. Note this is the language the paper was published in; abstracts of non-English papers are usually still in English."
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "pub_date",
              "Author",
              "JournalName"
            ],
            "type": "string",
            "description": "How PubMed orders matches before the result cap is applied. 'relevance' is PubMed's Best Match ranking; 'pub_date' puts the newest first and is what you want for a scheduled 'what is new' run.",
            "default": "relevance"
          },
          "includeAbstract": {
            "title": "Include abstracts",
            "type": "boolean",
            "description": "Include the full abstract on every record. Structured abstracts keep their section labels (BACKGROUND, METHODS, RESULTS…). Turning this off makes the dataset several times smaller. useful for change-detection sweeps.",
            "default": true
          },
          "maxResults": {
            "title": "Max results per source",
            "minimum": 1,
            "maximum": 9999,
            "type": "integer",
            "description": "Cap on articles saved, and charged for, per source: each search query counts as one source and the whole PMID list as another. PubMed's esearch cannot return more than 9,999 records for one query no matter what you ask for, so that is also the ceiling here. Split a broader sweep by date range instead.",
            "default": 100
          },
          "email": {
            "title": "Contact email",
            "type": "string",
            "description": "NCBI asks every automated client to identify itself and emails you before blocking anything that misbehaves. Nothing is sent to this address by the Actor. it is passed straight to E-utilities. Recommended for scheduled or heavy runs."
          },
          "apiKey": {
            "title": "NCBI API key",
            "type": "string",
            "description": "Optional. Raises the rate limit from 3 to 10 requests per second, which roughly triples throughput on large runs. Free from your NCBI account settings page (Account settings → API Key Management)."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}