Certn Applications API

Invite or instantly screen applicants and list applications (HR and PM surfaces).

Operations 6

POST /api/v1/hr/applications/invite/ Invite an HR applicant to complete a screen #
POST /api/v1/hr/applications/quick/ Screen an HR applicant instantly #
GET /api/v1/hr/applicants/ List HR applications #
POST /api/v1/pm/applications/invite/ Invite a property-management applicant to complete a screen #
POST /api/v1/pm/applications/quick/ Screen a property-management applicant instantly #
GET /api/v1/pm/applicants/ List property-management applications #

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/certn-applications-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

certn-applications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Certn Applications API
  description: 'Certn is a background check and identity verification platform. This API lets partner platforms (HR, property management, gig/marketplace) order background screening for applicants, retrieve consolidated reports, manage the checks and packages that make up a screen, and receive status updates via signed webhooks. Certn screens candidates across 200+ countries and territories.


    Authentication uses OAuth 2.0 client credentials: a Client ID and Client Secret (created in the Partner tab under API Keys) are exchanged for a Bearer access token that is sent on every request.


    Base URL is https://api.certn.co for production and https://demo-api.certn.co for the demo/testing environment.


    IMPORTANT - endpoint provenance: The original api.certn.co v1 REST endpoints (under /api/v1/hr, /api/v1/pm, /api/v1/users, /api/v2/teams) are documented and CONFIRMED against the public reference, but Certn deprecated them on 2026-04-13 with discontinuation on 2026-08-05 in favor of the newer CertnCentric APIs. The CertnCentric documentation portal (centric-api-docs.certn.co) is a client-rendered SPA whose exact endpoint paths could not be scraped; its resource groupings (cases, checks, reports, packages, webhooks) are MODELED here honestly and marked with x-endpoint-status. Confirm all shapes against the live docs before use.'
  version: '1.0'
  contact:
    name: Certn
    url: https://certn.co
  license:
    name: Proprietary
    url: https://certn.co/terms/
servers:
- url: https://api.certn.co
  description: Production
- url: https://demo-api.certn.co
  description: Demo / testing
security:
- bearerAuth: []
tags:
- name: Applications
  description: Invite or instantly screen applicants and list applications (HR and PM surfaces).
paths:
  /api/v1/hr/applications/invite/:
    post:
      operationId: inviteHrApplicant
      tags:
      - Applications
      summary: Invite an HR applicant to complete a screen
      description: Invite an applicant to complete a screen via email. The applicant fills in their own information and consent, then the requested checks run. (Deprecated in the v1 API; use the CertnCentric equivalent.)
      deprecated: true
      x-endpoint-status: confirmed
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationInvite'
      responses:
        '201':
          description: Application created and invitation sent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v1/hr/applications/quick/:
    post:
      operationId: quickScreenHrApplicant
      tags:
      - Applications
      summary: Screen an HR applicant instantly
      description: Screen an applicant using only the information supplied in the body of the request, without sending an invitation email. (Deprecated in the v1 API.)
      deprecated: true
      x-endpoint-status: confirmed
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuickScreen'
      responses:
        '201':
          description: Application created and screening started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v1/hr/applicants/:
    get:
      operationId: listHrApplicants
      tags:
      - Applications
      summary: List HR applications
      description: Retrieve a paginated list of all applications, in chronological order, with filtering by team or owner.
      x-endpoint-status: confirmed
      parameters:
      - $ref: '#/components/parameters/Team'
      - $ref: '#/components/parameters/Owner'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: A paginated list of applications.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v1/pm/applications/invite/:
    post:
      operationId: invitePmApplicant
      tags:
      - Applications
      summary: Invite a property-management applicant to complete a screen
      description: Invite one or more applicants to complete a property-management screening form; supports batch invitations. (Deprecated in the v1 API.)
      deprecated: true
      x-endpoint-status: confirmed
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationInvite'
      responses:
        '201':
          description: Application(s) created and invitation(s) sent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v1/pm/applications/quick/:
    post:
      operationId: quickScreenPmApplicant
      tags:
      - Applications
      summary: Screen a property-management applicant instantly
      description: Screen an applicant using only the information in the body of the request. (Deprecated in the v1 API.)
      deprecated: true
      x-endpoint-status: confirmed
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuickScreen'
      responses:
        '201':
          description: Application created and screening started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/v1/pm/applicants/:
    get:
      operationId: listPmApplicants
      tags:
      - Applications
      summary: List property-management applications
      description: View details of all applications, paginated in chronological order.
      x-endpoint-status: confirmed
      parameters:
      - $ref: '#/components/parameters/Team'
      - $ref: '#/components/parameters/Owner'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: A paginated list of applications.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationList'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    Limit:
      name: limit
      in: query
      required: false
      description: Maximum number of records to return.
      schema:
        type: integer
        minimum: 1
        maximum: 100
    Offset:
      name: offset
      in: query
      required: false
      description: Number of records to skip for pagination.
      schema:
        type: integer
        minimum: 0
    Team:
      name: team
      in: query
      required: false
      description: Filter results by team ID.
      schema:
        type: string
    Owner:
      name: owner
      in: query
      required: false
      description: Filter results by owner (user) ID.
      schema:
        type: string
  responses:
    Unauthorized:
      description: Missing or invalid Bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Check:
      type: object
      description: An individual check within an application, or an available check type.
      properties:
        id:
          type: string
          format: uuid
        type:
          type: string
          description: Check type - e.g. CRIMINAL_RECORD_CHECK, ENHANCED_CRIMINAL_RECORD_CHECK, INTERNATIONAL_CRIMINAL_RECORD_CHECK, IDENTITY_VERIFICATION, CREDIT_CHECK, PUBLIC_RECORDS, EMPLOYMENT_VERIFICATION, EDUCATION_VERIFICATION, CREDENTIAL_VERIFICATION, REFERENCE_CHECK, DRIVERS_ABSTRACT, WORKING_WITH_CHILDREN, SOCIAL_MEDIA.
        status:
          type: string
          description: Check status (e.g. PENDING, ANALYZING, COMPLETE, CANCELLED).
        result:
          type: string
          description: Adjudicated result (e.g. CLEAR, CONSIDER, IN_DISPUTE).
        country:
          type: string
          description: ISO country code the check was run in.
    QuickScreen:
      type: object
      description: Instant screen using information supplied directly in the request.
      required:
      - email
      properties:
        email:
          type: string
          format: email
        first_name:
          type: string
        last_name:
          type: string
        date_of_birth:
          type: string
          format: date
        package:
          type: string
        checks:
          type: array
          items:
            type: string
          description: Check type identifiers to run.
    Report:
      type: object
      description: Consolidated report across all checks in an application.
      properties:
        id:
          type: string
          format: uuid
        applicant_id:
          type: string
          format: uuid
        overall_result:
          type: string
          description: Overall adjudicated outcome / risk assessment.
        risk_assessment:
          type: string
        checks:
          type: array
          items:
            $ref: '#/components/schemas/Check'
        report_url:
          type: string
          format: uri
          description: Link to the rendered PDF/HTML report.
        completed:
          type: string
          format: date-time
    ApplicationInvite:
      type: object
      description: Request to invite an applicant to complete a screen.
      required:
      - email
      properties:
        email:
          type: string
          format: email
          description: Applicant email to send the invitation to.
        first_name:
          type: string
        last_name:
          type: string
        package:
          type: string
          description: ID of the screening package to apply.
        team:
          type: string
          description: Team ID that owns the application.
        request_criminal_record_check:
          type: boolean
        request_identity_verification:
          type: boolean
        request_credit_check:
          type: boolean
        request_employment_verification:
          type: boolean
        request_education_verification:
          type: boolean
        request_reference_check:
          type: boolean
    Error:
      type: object
      properties:
        detail:
          type: string
        code:
          type: string
    Application:
      type: object
      description: A screening application for an applicant.
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          description: Overall application status (e.g. PENDING, ANALYZING, COMPLETE).
        applicant:
          $ref: '#/components/schemas/Applicant'
        checks:
          type: array
          items:
            $ref: '#/components/schemas/Check'
        report:
          $ref: '#/components/schemas/Report'
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
    Applicant:
      type: object
      properties:
        id:
          type: string
          format: uuid
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
        date_of_birth:
          type: string
          format: date
    ApplicationList:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
          - string
          - 'null'
        previous:
          type:
          - string
          - 'null'
        results:
          type: array
          items:
            $ref: '#/components/schemas/Application'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'OAuth 2.0 client credentials. Exchange your Client ID and Client Secret for an access token, then send it as "Authorization: Bearer {token}".'