{
  "openapi": "3.0.1",
  "info": {
    "title": "Crossref Scraper · DOI Metadata, Authors & Journals",
    "description": "Scrape scholarly DOI metadata, works, journal articles, authors, citations, funding, and licenses from the Crossref REST API. Fast HTTP scraper with pay-per-event pricing.",
    "version": "1.0",
    "x-build-id": "uRsfxgrZHe5daEzYD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/reapx~crossref-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-reapx-crossref-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/reapx~crossref-scraper/runs": {
      "post": {
        "operationId": "runs-sync-reapx-crossref-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/reapx~crossref-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-reapx-crossref-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",
        "required": [
          "max_results"
        ],
        "properties": {
          "query": {
            "title": "Search Query",
            "type": "string",
            "description": "Enter free-text keywords or phrase to search Crossref DOI metadata across titles, abstracts, and full texts (e.g. <code>climate change</code> or <code>crispr</code>). <br><br><b>Consequence:</b> Broader search terms match more records, extending run time and consuming more budget. <b>Empty value:</b> Leave empty to search without keyword constraints when filtering by author, publisher, or date."
          },
          "query_author": {
            "title": "Author Name",
            "type": "string",
            "description": "Filter work records by author given name or family name (e.g. <code>Doudna</code> or <code>Vaswani</code>). <br><br><b>Consequence:</b> Restricts results strictly to works matching the specified author, reducing total records matched. <b>Empty value:</b> Leave empty to include works from all authors regardless of author name."
          },
          "query_title": {
            "title": "Work Title Query",
            "type": "string",
            "description": "Search specifically within publication and work title fields (e.g. <code>deep learning</code>). <br><br><b>Consequence:</b> Limits matching works to those containing the specified terms in their title, increasing query precision. <b>Empty value:</b> Leave empty to search across all metadata fields."
          },
          "query_container_title": {
            "title": "Journal / Container Title",
            "type": "string",
            "description": "Filter works published in specific journals, proceedings, or book series (e.g. <code>Nature</code> or <code>The CRISPR Journal</code>). <br><br><b>Consequence:</b> Restricts search results to specific publications, avoiding records from other journals. <b>Empty value:</b> Leave empty to query works across all journals and containers."
          },
          "query_publisher": {
            "title": "Publisher Name Query",
            "type": "string",
            "description": "Search works issued by specific publishers (e.g. <code>Elsevier</code>, <code>Wiley</code>, or <code>Springer</code>). <br><br><b>Consequence:</b> Filters results to publications from matching publishing houses. <b>Empty value:</b> Leave empty to include publications from all registered Crossref member publishers."
          },
          "filter_type": {
            "title": "Publication Type Filter",
            "enum": [
              "journal-article",
              "book-chapter",
              "proceedings-article",
              "dataset",
              "posted-content",
              "monograph",
              "report",
              "reference-entry"
            ],
            "type": "string",
            "description": "Filter by Crossref work category (e.g. <code>journal-article</code>, <code>book-chapter</code>, <code>proceedings-article</code>). <br><br><b>Consequence:</b> Narrows output to a specific work type, ignoring all other publication formats. <b>Empty value:</b> Leave empty to retrieve works of any publication type."
          },
          "filter_from_pub_date": {
            "title": "Published From Date",
            "pattern": "^\\d{4}(-\\d{2}(-\\d{2})?)?$",
            "type": "string",
            "description": "Start date for publication filtering formatted as YYYY, YYYY-MM, or YYYY-MM-DD (e.g. <code>2020-01-01</code>). <br><br><b>Consequence:</b> Excludes works published prior to this date threshold. <b>Empty value:</b> Leave empty to include older historical publications back to the start of the index."
          },
          "filter_until_pub_date": {
            "title": "Published Until Date",
            "pattern": "^\\d{4}(-\\d{2}(-\\d{2})?)?$",
            "type": "string",
            "description": "End date for publication filtering formatted as YYYY, YYYY-MM, or YYYY-MM-DD (e.g. <code>2026-12-31</code>). <br><br><b>Consequence:</b> Excludes works published after this date threshold. <b>Empty value:</b> Leave empty to include recent publications up to the current date."
          },
          "filter_has_license": {
            "title": "Has License Filter",
            "type": "boolean",
            "description": "Filter for works that include explicit licensing metadata or open reuse policies in Crossref. <br><br><b>Consequence:</b> Excludes records lacking registered license statements. <b>Empty value:</b> Leave false or empty to include works with or without explicit license metadata."
          },
          "filter_has_abstract": {
            "title": "Has Abstract Filter",
            "type": "boolean",
            "description": "Filter for works that contain indexed abstract text in Crossref metadata. <br><br><b>Consequence:</b> Filters out records that do not contain an abstract, returning higher-detail items. <b>Empty value:</b> Leave false or empty to include records regardless of abstract availability."
          },
          "filter_has_funder": {
            "title": "Has Funder Filter",
            "type": "boolean",
            "description": "Filter for works that carry research funding agency metadata or grant IDs. <br><br><b>Consequence:</b> Narrows output to funded research publications. <b>Empty value:</b> Leave false or empty to include unfunded and funded publications alike."
          },
          "filter_funder_id": {
            "title": "Funder ID / DOI",
            "type": "string",
            "description": "Filter works funded by a specific agency using its Crossref Funder Registry DOI (e.g. <code>10.13039/100000001</code> for NSF). <br><br><b>Consequence:</b> Limits output to projects funded by that specific agency. <b>Empty value:</b> Leave empty to include works funded by any or no agency."
          },
          "filter_member": {
            "title": "Publisher Member ID",
            "type": "string",
            "description": "Filter works by Crossref publisher member ID (e.g. <code>78</code> for Elsevier, <code>311</code> for Wiley, <code>179</code> for SAGE). <br><br><b>Consequence:</b> Restricts results to the specified publisher member. <b>Empty value:</b> Leave empty to search across all registered publishers."
          },
          "sort": {
            "title": "Sort Field",
            "enum": [
              "relevance",
              "published",
              "is-referenced-by-count",
              "score",
              "updated",
              "created"
            ],
            "type": "string",
            "description": "Select field used to order returned work records (e.g. <code>relevance</code>, <code>published</code>, or <code>is-referenced-by-count</code>). <br><br><b>Consequence:</b> Determines which matching items sort first during partial extraction runs. <b>Empty value:</b> Defaults to relevance score ordering.",
            "default": "relevance"
          },
          "order": {
            "title": "Sort Order",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Order results in descending or ascending direction for the chosen sort field. <br><br><b>Consequence:</b> <code>desc</code> puts highest relevance or newest works first; <code>asc</code> reverses order. <b>Empty value:</b> Defaults to <code>desc</code>.",
            "default": "desc"
          },
          "mailto": {
            "title": "Polite Pool Email",
            "pattern": "^[^@]+@[^@]+\\.[^@]+$",
            "type": "string",
            "description": "Email address sent in Crossref API headers to route requests to Crossref's high-speed Polite Pool (e.g. <code>reapxdev@proton.me</code>). <br><br><b>Consequence:</b> Provides higher rate limits and reliable response times. <b>Empty value:</b> Defaults to <code>reapxdev@proton.me</code>.<br><br>Leave this field empty to skip this filter.",
            "default": "reapxdev@proton.me"
          },
          "max_results": {
            "title": "Max Results Cap",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of work records to return and push to the default dataset (e.g. <code>50</code> or <code>1000</code>). <br><br><b>Consequence:</b> Higher values collect larger datasets but take longer and cost more per record event. <b>Empty value:</b> Defaults to 50 records.<br><br>The higher the number, the longer the run takes and the more you are charged, because you pay per row returned.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}