AtteStaff™ API

External API integration contract

Versioned clinician data quality review, async batch jobs, scoped API keys, and stable response shapes for customer integrations.

Authentication

Use organization-scoped API keys from `/api-keys`. Send keys with `Authorization: Bearer ats_live_...` or `x-api-key`.

Versioning

Public routes live under `/api/v1`. Dashboard routes are internal and should not be treated as an API contract.

Rate Limits

Single data review: 60/hour. Batch jobs: 5/hour. Batch jobs accept up to 100 NPIs.

Scopes

validate:writeCall POST /api/v1/validate for one data quality review.Live
bulk:writeCreate async bulk jobs.Live
jobs:readPoll jobs and download job results.Live
reports:readDownload JSON and CSV report artifacts.Live
rosters:read/writeList, create, update, and delete rosters.Live

Single Data Quality Review

POST /api/v1/validate
Authorization: Bearer ats_live_...
Content-Type: application/json

{
  "npi": "1234567890"
}
{
  "request_id": "req_...",
  "status": "ok",
  "result": {
    "provider": {},
    "nppesProfile": {},
    "cmsEnrollment": {},
    "source_alignment_confidence": "high_source_alignment",
    "confidence_reason": "Submitted name, NPI, taxonomy, location, and public-source signals strongly align with one or more provider profiles.",
    "human_review_required": false,
    "not_for_employment_decisioning": true,
    "not_a_background_check": true,
    "sources": [
      {
        "source_name": "NPPES NPI Registry",
        "source_url": "https://npiregistry.cms.hhs.gov/api/?number=1234567890&version=2.1",
        "retrieved_at": "2026-05-29T00:00:00.000Z"
      }
    ],
    "disclaimer": "AtteStaff™ provides public-source data quality review only...",
    "compliance": {
      "oigLeie": {
        "status": "clear",
        "caveat": "AtteStaff™ provides public-source lookup support only..."
      }
    },
    "activityPrediction": {
      "probability": 88,
      "label": "High",
      "caveat": "Source-alignment confidence reflects the degree of data alignment..."
    },
    "caveats": {
      "general": "AtteStaff™ does not make hiring, credentialing...",
      "oigLeie": "AtteStaff™ provides public-source lookup support only...",
      "activityPrediction": "Source-alignment confidence reflects the degree of data alignment..."
    },
    "webEvidence": [],
    "warnings": []
  }
}

Use Limitations

API outputs are public-source data quality review aids. LEIE source matches are not final identity determinations, and source-alignment confidence is a data consistency signal rather than a definitive operational determination.

Customers must confirm source records and apply their own legal and human review process before using outputs in operational workflows.

Do not submit patient PHI, patient identifiers, medical record numbers, dates of birth, SSNs, member IDs, claims data, clinical notes, or consumer background-check files in API requests, roster names, bulk text, report names, support messages, or other free-text fields unless a written agreement with Abalith Systems expressly permits that use.

Unless and until Abalith Systems publishes counsel-approved terms permitting that use, AtteStaff™ output must not be treated as a Fair Credit Reporting Act consumer report, background screening product, employment eligibility tool, or automated adverse-action decision system.

Async Batch Jobs

POST /api/v1/bulk
Authorization: Bearer ats_live_...
Content-Type: application/json

{
  "npis": ["1234567890", "1098765432"]
}
{
  "request_id": "req_...",
  "job_id": "job_...",
  "status": "queued",
  "summary": null,
  "npi_count": 2,
  "result_url": null,
  "report_urls": null
}

Polling And Results

GET /api/v1/jobs/job_...
Authorization: Bearer ats_live_...
GET /api/v1/jobs/job_.../result
GET /api/v1/jobs/job_.../result?format=csv
GET /api/v1/reports/job_abc123.json
GET /api/v1/reports/job_abc123.csv

Roster Management

GET /api/v1/rosters
POST /api/v1/rosters
GET /api/v1/rosters/roster_...
PUT /api/v1/rosters/roster_...
DELETE /api/v1/rosters/roster_...
{
  "name": "Monthly pediatric roster",
  "npis": ["1962772541", "1164699773"]
}

Error Shape

{
  "request_id": "req_...",
  "status": "error",
  "error": {
    "code": "rate_limited",
    "message": "Too many requests. Please try again later."
  }
}
api_key_requiredNo API key was sent.401
api_key_invalidKey is invalid, revoked, or expired.401
api_key_scope_deniedKey lacks the required scope.403
invalid_requestInput was invalid.400
rate_limitedRate limit exceeded.429
job_not_completeJob result is not ready.409

Client Workflow

  1. Create an organization-scoped API key.
  2. Use `POST /api/v1/validate` for one clinician data quality review.
  3. Use `POST /api/v1/bulk` for multiple clinicians.
  4. Poll `GET /api/v1/jobs/:id` until complete.
  5. Download JSON or CSV results from `GET /api/v1/jobs/:id/result`.
  6. Store `request_id` and `job_id` for support.