{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenAlex Research Graph Scraper API - Works & Authors",
    "description": "Search and normalize OpenAlex works, authors, and institutions for research intelligence. Filter publications by DOI, graph IDs, author, institution, topic, country, open access, type, year, and citations with bounded authorship, affiliation, grant, location, and citation evidence.",
    "version": "0.1",
    "x-build-id": "EyXej4gg59d86IRjn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pink_comic~openalex-research-graph/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pink_comic-openalex-research-graph",
        "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/pink_comic~openalex-research-graph/runs": {
      "post": {
        "operationId": "runs-sync-pink_comic-openalex-research-graph",
        "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/pink_comic~openalex-research-graph/run-sync": {
      "post": {
        "operationId": "run-sync-pink_comic-openalex-research-graph",
        "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": "Research Entity Mode",
            "enum": [
              "works",
              "authors",
              "institutions"
            ],
            "type": "string",
            "description": "Optional research entity mode filter or result-control setting. See the README for exact source semantics, bounds, and examples.",
            "default": "works"
          },
          "search": {
            "title": "Search",
            "type": "string",
            "description": "Full-text OpenAlex search. Empty works input defaults to machine learning.",
            "default": ""
          },
          "id": {
            "title": "Exact OpenAlex ID",
            "type": "string",
            "description": "Exact mode-compatible W..., A..., or I... OpenAlex ID."
          },
          "doi": {
            "title": "Exact DOI",
            "type": "string",
            "description": "Works mode only; accepts 10.x/... or a doi.org URL."
          },
          "authorId": {
            "title": "OpenAlex Author ID",
            "type": "string",
            "description": "Filter works by author, or select an author ID in authors mode."
          },
          "institutionId": {
            "title": "OpenAlex Institution ID",
            "type": "string",
            "description": "Filter work authorships, author last-known institutions, or an institution ID."
          },
          "topicId": {
            "title": "OpenAlex Topic ID",
            "type": "string",
            "description": "Works mode topic filter."
          },
          "conceptId": {
            "title": "Legacy OpenAlex Concept ID",
            "type": "string",
            "description": "Works mode concept filter; topics are preferred for current classification."
          },
          "country": {
            "title": "Country Code",
            "pattern": "^$|^[A-Za-z]{2}$",
            "type": "string",
            "description": "Two-letter ISO code. Works mode checks authorship institutions."
          },
          "openAccess": {
            "title": "Open Access",
            "enum": [
              "any",
              "open",
              "closed"
            ],
            "type": "string",
            "description": "Optional open access filter or result-control setting. See the README for exact source semantics, bounds, and examples.",
            "default": "any"
          },
          "publicationType": {
            "title": "Publication Type",
            "type": "string",
            "description": "Works mode OpenAlex type, such as article, book, dataset, or preprint."
          },
          "fromPublicationYear": {
            "title": "From Publication Year",
            "minimum": 1800,
            "maximum": 2200,
            "type": "integer",
            "description": "Works mode inclusive lower year."
          },
          "toPublicationYear": {
            "title": "To Publication Year",
            "minimum": 1800,
            "maximum": 2200,
            "type": "integer",
            "description": "Works mode inclusive upper year."
          },
          "minCitations": {
            "title": "Minimum Citation Count",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum OpenAlex cited_by_count. Citation counts can lag and do not establish research quality.",
            "default": 0
          },
          "cursor": {
            "title": "Resume Cursor",
            "type": "string",
            "description": "Optional OpenAlex next_cursor from a prior bounded result."
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "",
              "publication_date:desc",
              "publication_date:asc",
              "cited_by_count:desc",
              "cited_by_count:asc",
              "works_count:desc",
              "works_count:asc",
              "relevance_score:desc"
            ],
            "type": "string",
            "description": "Optional sort filter or result-control setting. See the README for exact source semantics, bounds, and examples.",
            "default": ""
          },
          "mailto": {
            "title": "Polite API Contact Email",
            "type": "string",
            "description": "Optional contact sent through OpenAlex's documented mailto polite-pool parameter."
          },
          "maxResults": {
            "title": "Maximum Paid Records",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Total dataset-item cap. Default first run costs at most $0.0021 including the $0.0001 start.",
            "default": 1
          },
          "maxCandidates": {
            "title": "Maximum Source Candidates",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Bound checked before output stops.",
            "default": 100
          },
          "maxPages": {
            "title": "Maximum Cursor Pages",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Hard cursor-pagination request bound.",
            "default": 5
          },
          "maxAuthorships": {
            "title": "Authorships Per Work",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Optional authorships per work filter or result-control setting. See the README for exact source semantics, bounds, and examples.",
            "default": 20
          },
          "maxInstitutions": {
            "title": "Institutions / Affiliations Per Record",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Optional institutions / affiliations per record filter or result-control setting. See the README for exact source semantics, bounds, and examples.",
            "default": 20
          },
          "maxTopics": {
            "title": "Topics Per Record",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Optional topics per record filter or result-control setting. See the README for exact source semantics, bounds, and examples.",
            "default": 20
          },
          "maxLocations": {
            "title": "Locations Per Work",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Optional locations per work filter or result-control setting. See the README for exact source semantics, bounds, and examples.",
            "default": 10
          },
          "maxGrants": {
            "title": "Grants Per Work",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Optional grants per work filter or result-control setting. See the README for exact source semantics, bounds, and examples.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}