Sterling

Sterling (Sterling Check Corp) is a global background and identity screening provider offering criminal checks, employment and education verifications, drug and health screening, identity verification, and continuous (recurring) monitoring. The Sterling API is a documented RESTful, OAuth2-secured developer API that lets platforms, ATS/HRIS systems, and marketplaces initiate background checks, manage candidates and screening packages, retrieve results and reports (PDF/HTML), send candidate invites, and receive real-time status updates via webhook callbacks. Access is gated - developers request a Client ID and Client Secret per screening region (US, EMEA, Canada, or APAC) - and the docs are published via a Postman-hosted portal at apidocs.sterlingcheck.app with a developer portal at developer.sterlingcheck.app. Sterling was acquired by First Advantage Corporation for $2.2 billion, with the deal closing on October 31, 2024; Sterling now operates as "a First Advantage company."

6 APIs 0 Features
Background ScreeningIdentity VerificationBackground CheckHR TechComplianceGated API

APIs

Sterling Screenings API

Initiate and manage background screenings (orders). Submit a screening for a candidate against a package, list and retrieve screenings, cancel a screening, and schedule recurrin...

Sterling Candidates API

Create and manage the candidate (subject) records screenings run against. Minimum fields to create a candidate are first name, last name, email, and clientReferenceId; additiona...

Sterling Packages API

Retrieve the screening packages available to your account. A package is a group of screening products (criminal, verifications, drug, identity); the response also specifies whic...

Sterling Reports API

Retrieve results for completed screenings. Reports are available with per-item statuses (a screening rolls up multiple report items, each with its own status) and can be deliver...

Sterling Invites API

Invite candidates to complete their portion of a screening (consent and data collection). On POST /screenings, set invite.method to "email" to have Sterling email the candidate,...

Sterling Webhooks API

Receive real-time updates for the screenings you initiate. Specify a Callback URI in a POST /screenings request and Sterling posts status-change events to your endpoint as the s...

Collections

Pricing Plans

Rate Limits

Sterling Check Rate Limits

3 limits

RATE LIMITS

FinOps

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔑
OAuthScopes
OAuthScopes
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🌐
DeveloperPortal
DeveloperPortal
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Sterling API
  version: '2.0'
  description: 'Integrate background and identity screening end to end. OAuth2 (Client ID + Client Secret -> access token);
    access is gated per region and environment. Confirmed: OAuth token, GET /packages, POST /candidates, POST /screenings
    (invite + callbackUri). Other items are [MODELED] on the documented order lifecycle. API host is a modeled representative
    host; auth.sterlingcheck.app is confirmed. Sterling is a First Advantage company (acquisition closed 2024-10-31).'
request:
  auth:
    type: bearer
    token: '{{accessToken}}'
items:
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Create access token (CONFIRMED)
      type: http
    http:
      method: POST
      url: https://auth.sterlingcheck.app/oauth/token
      auth:
        type: none
      body:
        type: json
        data: '{"grant_type":"client_credentials","client_id":"{{clientId}}","client_secret":"{{clientSecret}}"}'
    docs: Exchange Client ID and Client Secret for an OAuth2 access token. Auth host is confirmed.
- info:
    name: Packages
    type: folder
  items:
  - info:
      name: List packages (CONFIRMED)
      type: http
    http:
      method: GET
      url: https://api.sterlingcheck.app/v2/packages
    docs: Retrieve the screening packages available to your account and required candidate fields.
  - info:
      name: Get package (MODELED)
      type: http
    http:
      method: GET
      url: https://api.sterlingcheck.app/v2/packages/:packageId
      params:
      - name: packageId
        value: ''
        type: path
        description: The package ID.
    docs: '[MODELED] Retrieve a single package by ID.'
- info:
    name: Candidates
    type: folder
  items:
  - info:
      name: Create candidate (CONFIRMED)
      type: http
    http:
      method: POST
      url: https://api.sterlingcheck.app/v2/candidates
      body:
        type: json
        data: '{"firstName":"Jane","lastName":"Doe","email":"jane.doe@example.com","clientReferenceId":"req-12345"}'
    docs: 'Create a candidate. Minimum fields: firstName, lastName, email, clientReferenceId.'
  - info:
      name: Get candidate (MODELED)
      type: http
    http:
      method: GET
      url: https://api.sterlingcheck.app/v2/candidates/:candidateId
      params:
      - name: candidateId
        value: ''
        type: path
        description: The candidate ID.
    docs: '[MODELED] Retrieve a candidate by ID.'
  - info:
      name: Update candidate (MODELED)
      type: http
    http:
      method: PATCH
      url: https://api.sterlingcheck.app/v2/candidates/:candidateId
      params:
      - name: candidateId
        value: ''
        type: path
        description: The candidate ID.
      body:
        type: json
        data: '{"phone":"+15555550123"}'
    docs: '[MODELED] Update mutable fields on a candidate before submitting a screening.'
- info:
    name: Screenings
    type: folder
  items:
  - info:
      name: Initiate screening (CONFIRMED)
      type: http
    http:
      method: POST
      url: https://api.sterlingcheck.app/v2/screenings
      body:
        type: json
        data: '{"candidateId":"cand_123","packageId":"pkg_basic","clientReferenceId":"req-12345","callbackUri":"https://example.com/webhooks/sterling","invite":{"method":"email"}}'
    docs: Initiate a screening for a candidate against a package. invite.method 'email' emails the candidate; 'link' returns
      a hosted form URL. callbackUri delivers real-time webhook updates.
  - info:
      name: List screenings (MODELED)
      type: http
    http:
      method: GET
      url: https://api.sterlingcheck.app/v2/screenings
      params:
      - name: status
        value: in_progress
        type: query
        description: Filter by status.
      - name: limit
        value: '25'
        type: query
      - name: offset
        value: '0'
        type: query
    docs: '[MODELED] List screenings, filterable by status.'
  - info:
      name: Get screening (MODELED)
      type: http
    http:
      method: GET
      url: https://api.sterlingcheck.app/v2/screenings/:screeningId
      params:
      - name: screeningId
        value: ''
        type: path
        description: The screening ID.
    docs: '[MODELED] Retrieve a screening and its rolled-up report item statuses.'
  - info:
      name: Cancel screening (MODELED)
      type: http
    http:
      method: POST
      url: https://api.sterlingcheck.app/v2/screenings/:screeningId/cancel
      params:
      - name: screeningId
        value: ''
        type: path
        description: The screening ID.
    docs: '[MODELED] Cancel an in-progress screening where allowed.'
- info:
    name: Invites
    type: folder
  items:
  - info:
      name: Resend/retrieve invite (MODELED)
      type: http
    http:
      method: POST
      url: https://api.sterlingcheck.app/v2/screenings/:screeningId/invite
      params:
      - name: screeningId
        value: ''
        type: path
        description: The screening ID.
    docs: '[MODELED] Resend the invite email or retrieve the hosted form link. The invite object on POST /screenings is confirmed.'
- info:
    name: Reports
    type: folder
  items:
  - info:
      name: Get screening report (MODELED path, CONFIRMED concept)
      type: http
    http:
      method: GET
      url: https://api.sterlingcheck.app/v2/screenings/:screeningId/report
      params:
      - name: screeningId
        value: ''
        type: path
        description: The screening ID.
      headers:
      - name: Accept
        value: application/json
    docs: Retrieve results for a completed screening. Reports are available in PDF or HTML; each report item has its own status.
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: List webhook subscriptions (MODELED)
      type: http
    http:
      method: GET
      url: https://api.sterlingcheck.app/v2/webhooks
    docs: '[MODELED] List account-level webhook subscriptions. Confirmed mechanism is the per-screening callbackUri.'
  - info:
      name: Create webhook subscription (MODELED)
      type: http
    http:
      method: POST
      url: https://api.sterlingcheck.app/v2/webhooks
      body:
        type: json
        data: '{"callbackUri":"https://example.com/webhooks/sterling","events":["screening.status_changed"]}'
    docs: '[MODELED] Register an account-level callback URL.'
  - info:
      name: Delete webhook subscription (MODELED)
      type: http
    http:
      method: DELETE
      url: https://api.sterlingcheck.app/v2/webhooks/:webhookId
      params:
      - name: webhookId
        value: ''
        type: path
        description: The webhook subscription ID.
    docs: '[MODELED] Delete an account-level webhook subscription.'