# ProviderSignal Acquisition Scoring API

> ProviderSignal Acquisition Scoring API is a paid API for AI agents from providersignal.com, paid per call via x402, $1/call, status unknown (last checked 2026-09-14).

Returns ranked dental/healthcare providers with acquisition-readiness scores (0-100) derived from NPI, license events, CMS, OIG, and Medicaid data

## Facts

- Endpoint: GET https://providersignal.com/api/v1/agent/scoring
- Price: $1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/providersignal-acquisition-scoring-api-c4ed0129
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8lnBfw4MYKni29PI8Y9CL

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability providersignal-acquisition-scoring-api-c4ed0129
```

Example prompt: Pull me the top acquisition targets among independent dental practices in Texas — score them by retirement risk, practice vintage, and clean record, and show me only those scoring above 75.

## When to prefer this

Choose this endpoint when you need a pre-computed, multi-signal acquisition-readiness score across a large pool of providers rather than raw directory data. It is especially valuable when targeting dental or healthcare practice acquisition pipelines because it fuses NPI, license events, CMS, OIG LEIE, and Medicaid signals into a single ranked score with auditable source citations. Prefer it over raw directory lookups when you need to filter by retirement risk, practice vintage, or DSO status at scale. The citation envelope makes it suitable for compliance-sensitive M&A workflows where source provenance must be logged.

## Known failure modes

- Invalid or missing query parameters return 400 with validation errors
- Insufficient payment or expired API key returns 402 with x402/MPP payment challenge
- State code not recognized returns empty result set or 400
- min_score outside 0-100 range rejected by schema validation
- per_page exceeding 100 returns schema validation error
- Rate limiting or quota exhaustion returns 429
- Stale source data indicated in meta.source_attribution last_refresh timestamps

## How this service works

Healthcare market intelligence API. Unified provider directory + acquisition signals + license-events feed across all 50 US states, derived from NPI + state dental boards + CMS Medicare + OIG LEIE + state Medicaid + HRSA HPSA designations. All responses ship a citation envelope (`meta.envelope_version`, `meta.source_attribution`, `meta.request`) so agents can verify source freshness without out-of-band validation. Paid `/api/v1/agent/*` endpoints accept two per-call rails on a single 402: x402 (USDC on Base mainnet) and MPP (Stripe card via a Shared Payment Token), plus Bearer-token subscription auth for existing API keys. See [/docs/agent-payments](/docs/agent-payments) for the full flow. See [/docs/fields](/docs/fields) for the field glossary and [/llms.txt](/llms.txt) for the LLM crawler index.

## Output

A paginated JSON array of scored providers, each with NPI, first/last name, overall acquisition-readiness score (0-100), per-component score factors (solo_independent, practice_vintage, retirement_risk, practice_size, clean_record, license_freshness), and a confidence object. The meta envelope includes total count, source attributions with last-refresh timestamps, envelope version, and billing metadata (credits used, billing method, request ID).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "page": {
       "type": "integer",
       "minimum": 1
      },
      "state": {
       "type": "string"
      },
      "is_dso": {
       "enum": [
        "true",
        "false"
       ],
       "type": "string"
      },
      "has_cms": {
       "enum": [
        "true"
       ],
       "type": "string"
      },
      "per_page": {
       "type": "integer",
       "maximum": 100,
       "minimum": 1
      },
      "min_score": {
       "type": "integer",
       "maximum": 100,
       "minimum": 0,
       "description": "Minimum acquisition-readiness score 0-100. Filters AFTER scoring."
      },
      "sole_prop": {
       "enum": [
        "true",
        "false"
       ],
       "type": "string"
      },
      "specialty": {
       "type": "string"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "data",
      "error",
      "meta"
     ],
     "properties": {
      "data": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "npi": {
          "type": "string"
         },
         "score": {
          "type": "integer",
          "maximum": 100,
          "minimum": 0
         },
         "last_name": {
          "type": [
           "string",
           "null"
          ]
         },
         "confidence": {
          "type": "object",
          "properties": {
           "score": {
            "type": "number"
           },
           "method": {
            "type": "string"
           }
          }
         },
         "first_name": {
          "type": [
           "string",
           "null"
          ]
         },
         "score_factors": {
          "type": "object",
          "description": "Per-component breakdown (solo_independent, practice_vintage, retirement_risk, practice_size, clean_record, license_freshness); components sum to the score.",
  
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": [
   {
    "npi": "1699733048",
    "score": 87,
    "last_name": "AARON",
    "confidence": {
     "score": 92,
     "method": "completeness+multi_source"
    },
    "first_name": "EUGENE",
    "score_factors": {
     "clean_record": 10,
     "practice_size": 12,
     "retirement_risk": 18,
     "practice_vintage": 14,
     "solo_independent": 25,
     "license_freshness": 8
    }
   }
  ],
  "meta": {
   "total": 542,
   "envelope_version": "1.0"
  },
  "error": null
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/providersignal-acquisition-scoring-api-c4ed0129/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from providersignal.com](https://www.zero.xyz/host/providersignal.com/llms.txt)
