npm

npm Search API

Full-text search across the npm registry with weighted scoring.

Operations 1

GET /-/v1/search Search packages #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/npm-search-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

npm-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: npm Hooks Downloads Search API
  description: The npm Hooks API allows developers to subscribe to notifications about changes in the npm registry. Hooks send HTTP POST payloads to a configured URI whenever a package is changed, enabling developers to build integrations that respond to registry events in real time. Users can add hooks to follow specific packages, track all activity of given npm users, or monitor all packages within an organization or user scope. The API provides endpoints for creating, listing, updating, and deleting hook subscriptions. Note that npm hooks services have been deprecated as of July 2024.
  version: 1.0.0
  contact:
    name: npm Support
    url: https://www.npmjs.com/support
  termsOfService: https://docs.npmjs.com/policies/terms
servers:
- url: https://registry.npmjs.org
  description: npm Public Registry
security:
- bearerAuth: []
tags:
- name: Search
  description: Full-text search across the npm registry with weighted scoring.
paths:
  /-/v1/search:
    get:
      operationId: searchPackages
      summary: Search packages
      description: Performs a full-text search across the npm registry. Results can be weighted by quality, popularity, and maintenance scores. Supports special search qualifiers such as author, maintainer, scope, and keywords filters. Qualifiers like not:unstable, not:insecure, is:unstable, and boost-exact can be included in the text parameter.
      tags:
      - Search
      parameters:
      - name: text
        in: query
        description: Full-text search query. Supports special qualifiers such as author:username, maintainer:username, scope:scopename, keywords:keyword, not:unstable, not:insecure, is:unstable, is:insecure, and boost-exact:true.
        required: true
        schema:
          type: string
      - name: size
        in: query
        description: Number of results to return. Maximum value is 250.
        required: false
        schema:
          type: integer
          default: 20
          minimum: 1
          maximum: 250
      - name: from
        in: query
        description: Offset for pagination, indicating the starting position in the result set.
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
      - name: quality
        in: query
        description: Weighting for the quality score component of search results, between 0 and 1.
        required: false
        schema:
          type: number
          minimum: 0
          maximum: 1
      - name: popularity
        in: query
        description: Weighting for the popularity score component of search results, between 0 and 1.
        required: false
        schema:
          type: number
          minimum: 0
          maximum: 1
      - name: maintenance
        in: query
        description: Weighting for the maintenance score component of search results, between 0 and 1.
        required: false
        schema:
          type: number
          minimum: 0
          maximum: 1
      responses:
        '200':
          description: Search results returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
components:
  schemas:
    SearchResultItem:
      type: object
      description: A single search result item containing package metadata and scoring information.
      properties:
        package:
          type: object
          description: Summary package metadata.
          properties:
            name:
              type: string
              description: The package name.
            scope:
              type: string
              description: The package scope, or "unscoped" if none.
            version:
              type: string
              description: The latest version of the package.
            description:
              type: string
              description: A short description of the package.
            keywords:
              type: array
              description: Keywords associated with the package.
              items:
                type: string
            date:
              type: string
              format: date-time
              description: The publication date of the latest version.
            links:
              type: object
              description: Links to related resources such as npm page, homepage, repository, and bugs.
              additionalProperties:
                type: string
            author:
              $ref: '#/components/schemas/Person'
            publisher:
              $ref: '#/components/schemas/Person'
            maintainers:
              type: array
              description: List of package maintainers.
              items:
                $ref: '#/components/schemas/Person'
        score:
          type: object
          description: Scoring breakdown for the package.
          properties:
            final:
              type: number
              description: The final combined score.
            detail:
              type: object
              description: Detailed score breakdown.
              properties:
                quality:
                  type: number
                  description: The quality score component.
                popularity:
                  type: number
                  description: The popularity score component.
                maintenance:
                  type: number
                  description: The maintenance score component.
        searchScore:
          type: number
          description: The search relevance score for this result.
    Person:
      type: object
      description: A person object representing a user, author, or maintainer.
      properties:
        name:
          type: string
          description: The display name of the person.
        email:
          type: string
          format: email
          description: The email address of the person.
        url:
          type: string
          format: uri
          description: The personal URL or website of the person.
    SearchResults:
      type: object
      description: Search results from the npm registry search endpoint.
      properties:
        objects:
          type: array
          description: List of search result objects.
          items:
            $ref: '#/components/schemas/SearchResultItem'
        total:
          type: integer
          description: The total number of matching results.
        time:
          type: string
          description: Timestamp of when the search was performed.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: npm access token provided as a Bearer token.
externalDocs:
  description: npm Hooks Documentation
  url: https://blog.npmjs.org/post/145260155635/introducing-hooks-get-notifications-of-npm