Accurate Candidates API

Create, retrieve, list, and update the candidates (screening subjects) that background checks are run against. A candidate is created first and then referenced in an order-creation payload; candidate updates apply to future orders only.

OpenAPI Specification

accurate-bg-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Accurate Background API
  description: >-
    The Accurate API (v3) lets platforms embed employment background screening
    into their own web and mobile applications. Integrators create candidates,
    order preset or custom screening packages, track order status and estimated
    completion time, attach documents, adjudicate results, and retrieve
    completed reports. A free developer account and a sandbox environment are
    available for testing; production access is provisioned under a screening
    services agreement.


    This OpenAPI document was authored by API Evangelist from Accurate's
    published developer documentation (developer.accuratebackground.com and
    accurate.readme.io). Paths and HTTP methods reflect the documented endpoints;
    request and response schemas are summarized rather than exhaustively modeled.
    Verify the authoritative contract in Accurate's own API reference.
  version: '3.0'
  contact:
    name: Accurate Background
    url: https://developer.accuratebackground.com/
servers:
  - url: https://api.accuratebackground.com/v3
    description: Production
security:
  - oauth2ClientCredentials: []
tags:
  - name: Candidates
    description: Screening subjects that background checks are run against.
  - name: Orders
    description: Background-check orders placed against a candidate.
  - name: Packages
    description: Screening packages available on an account.
  - name: Reports
    description: Completed screening results and reports.
  - name: Documents
    description: Supporting documents attached to an order.
  - name: Adjudication
    description: Pass/fail decisioning on completed orders.
  - name: Verifications
    description: Employment and education verification attempts.
  - name: Notifications
    description: Candidate-facing notifications.
  - name: Utility
    description: Connectivity and health checks.
paths:
  /candidates:
    get:
      tags: [Candidates]
      summary: Retrieve all candidates
      description: Retrieve all candidates for the authenticated company account.
      responses:
        '200':
          description: A list of candidates.
  /candidate:
    post:
      tags: [Candidates]
      summary: Create candidate
      description: >-
        Creates a candidate that can then be submitted within an order-creation
        payload.
      responses:
        '201':
          description: Candidate created.
    put:
      tags: [Candidates]
      summary: Update candidate
      description: >-
        Updates an existing candidate. Changes apply to future orders only.
      responses:
        '200':
          description: Candidate updated.
  /candidate/{id}:
    get:
      tags: [Candidates]
      summary: Retrieve candidate by ID
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The requested candidate.
  /order:
    post:
      tags: [Orders]
      summary: Create order
      description: Request to complete a background check on a specific candidate.
      responses:
        '201':
          description: Order created.
  /orders:
    get:
      tags: [Orders]
      summary: Retrieve all orders
      description: Retrieve and filter orders by query parameters.
      responses:
        '200':
          description: A list of orders.
  /order/{id}:
    get:
      tags: [Orders]
      summary: Retrieve order by ID
      description: Retrieve a single order, its status, and its searches.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The requested order.
  /order/{id}/eta:
    get:
      tags: [Orders]
      summary: Get order ETA
      description: Estimated completion time for an order.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The order ETA.
  /order/{id}/changes:
    get:
      tags: [Orders]
      summary: Get order changes
      description: List of modifications made to an order.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The order change history.
  /order/{id}/reinitiate:
    post:
      tags: [Orders]
      summary: Reinitiate order
      description: Reset a cancelled interactive order so the candidate can resume.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Order reinitiated.
  /order/{id}/invitation:
    post:
      tags: [Orders]
      summary: Resend invitation
      description: Resend the candidate invitation email for an interactive order.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Invitation resent.
  /order/{id}/invitation-link:
    get:
      tags: [Reports]
      summary: Get candidate invitation link
      description: Retrieve the candidate login/invitation link for an order.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The invitation link.
  /order/{id}/report:
    get:
      tags: [Reports]
      summary: Retrieve report
      description: >-
        Retrieve the completed background-check report for an order as a PDF or
        base64-encoded HTML once the order is complete.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The completed report.
  /packages:
    get:
      tags: [Packages]
      summary: Retrieve packages
      description: Retrieve all active screening packages on the account.
      responses:
        '200':
          description: A list of packages.
  /package/{type}:
    get:
      tags: [Packages]
      summary: Get package by type
      parameters:
        - name: type
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The requested package.
  /order/{id}/document:
    post:
      tags: [Documents]
      summary: Upload document
      description: >-
        Upload a supporting document to an order. Supports PDF, JPG, PNG, DOC,
        and DOCX up to 15MB.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Document uploaded.
  /order/{id}/documents:
    get:
      tags: [Documents]
      summary: Retrieve documents
      description: List the documents attached to an order.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: A list of documents.
  /document/{id}:
    get:
      tags: [Documents]
      summary: Get document
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Document metadata.
    delete:
      tags: [Documents]
      summary: Delete document
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Document deleted.
  /document/{id}/download:
    get:
      tags: [Documents]
      summary: Download document
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The document file.
  /order/{id}/adjudicate:
    post:
      tags: [Adjudication]
      summary: Adjudicate order
      description: >-
        Make a pass/fail adjudication decision on a completed order without
        logging into the portal.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Adjudication recorded.
  /order/{id}/reassess:
    post:
      tags: [Adjudication]
      summary: Reassess adjudication
      description: >-
        Reassess an adjudication where jurisdiction rules require it (for example
        LA City/County individualized assessment).
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Reassessment recorded.
  /order/{id}/location:
    put:
      tags: [Adjudication]
      summary: Update position location
      description: Update the job/position location used for compliant decisioning.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Location updated.
  /order/{id}/verification-attempts:
    get:
      tags: [Verifications]
      summary: Get verification attempts
      description: >-
        Retrieve the history of employment and education verification attempts
        for an order.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Verification attempt history.
  /notification/subject:
    post:
      tags: [Notifications]
      summary: Create subject notification
      description: >-
        Send the screening subject a candidate-facing notification, such as a
        copy of their completed report.
      responses:
        '201':
          description: Notification created.
  /alive:
    get:
      tags: [Utility]
      summary: Alive / ping test
      description: Connectivity test that does not require authentication.
      security: []
      responses:
        '200':
          description: Service is reachable.
components:
  securitySchemes:
    oauth2ClientCredentials:
      type: oauth2
      description: >-
        Accurate API credentials are a ClientID / ClientSecret pair obtained from
        the Accurate developer portal. Credentials are exchanged (HTTP Basic) for
        an access token that authorizes subsequent requests.
      flows:
        clientCredentials:
          tokenUrl: https://api.accuratebackground.com/v3/oauth/token
          scopes: {}