{
  "openapi": "3.0.1",
  "info": {
    "title": "npm Registry Intel: Packages, Releases & Maintainer Leads",
    "description": "Turn the npm registry into structured B2B data. Discover packages by keyword or scope, monitor releases of any package list, or build developer lead lists from maintainer emails. Official public npm API, no proxy, no auth. Delta mode for recurring monitoring.",
    "version": "1.0",
    "x-build-id": "JmhSapS1LlbiGahi7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/obsidian937~npm-registry-intel/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-obsidian937-npm-registry-intel",
        "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/obsidian937~npm-registry-intel/runs": {
      "post": {
        "operationId": "runs-sync-obsidian937-npm-registry-intel",
        "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/obsidian937~npm-registry-intel/run-sync": {
      "post": {
        "operationId": "run-sync-obsidian937-npm-registry-intel",
        "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": "Mode",
            "enum": [
              "search",
              "package",
              "maintainer"
            ],
            "type": "string",
            "description": "What to extract: discover packages by search, deep-monitor a list of packages, or list a maintainer's packages as developer leads.",
            "default": "search"
          },
          "query": {
            "title": "Search query (raw)",
            "type": "string",
            "description": "Raw npm search text (search mode). Supports qualifiers: keywords:, scope:, author:, maintainer:. Example: \"keywords:scraper\" or \"react table\". Overrides the structured filters below.",
            "default": ""
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Filter by package keyword, e.g. \"scraper\", \"payments\" (search mode).",
            "default": ""
          },
          "scope": {
            "title": "Scope",
            "type": "string",
            "description": "Restrict to an npm scope / org, e.g. \"angular\" or \"@aws-sdk\" (search mode).",
            "default": ""
          },
          "author": {
            "title": "Author",
            "type": "string",
            "description": "Restrict to a publishing author username (search mode).",
            "default": ""
          },
          "maintainer": {
            "title": "Maintainer (npm username)",
            "type": "string",
            "description": "npm username whose packages to list (maintainer mode). Also usable as a filter in search mode.",
            "default": ""
          },
          "packages": {
            "title": "Packages",
            "type": "array",
            "description": "Explicit list of package names to deep-dive or monitor, e.g. [\"express\", \"@aws-sdk/client-s3\"] (package mode).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "enrich": {
            "title": "Enrich packages",
            "type": "boolean",
            "description": "Fetch full metadata + download counts for each result (created date, latest version, dependency count, weekly downloads). Costs two extra requests per package but produces actionable intel (search mode; always on for maintainer mode).",
            "default": true
          },
          "minDownloads": {
            "title": "Minimum weekly downloads",
            "type": "integer",
            "description": "Only emit packages with at least this many downloads in the selected period (search mode; enables enrichment).",
            "default": 0
          },
          "downloadsPeriod": {
            "title": "Downloads period",
            "enum": [
              "last-day",
              "last-week",
              "last-month"
            ],
            "type": "string",
            "description": "Window for the download count.",
            "default": "last-week"
          },
          "deltaMode": {
            "title": "Delta / monitor mode",
            "type": "boolean",
            "description": "Only emit changes since the previous run (per-account state). Search / maintainer: only packages that newly appear. Package: only packages whose latest version changed (release monitor). Pair with a schedule + webhook for recurring alerts.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Cap on records to return (search / maintainer modes).",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}