NeverBounce Jobs API

Bulk list verification jobs

OpenAPI Specification

neverbounce-jobs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: NeverBounce API v4 Account Jobs API
  version: '4'
  description: 'RESTful JSON API for email verification. Provides single email verification and bulk list (jobs) verification endpoints. Authentication uses a per-integration API key (format `secret_xxxx...`) supplied via the `key` query/body parameter or the `Authorization: Bearer` header.'
  contact:
    name: NeverBounce Developers
    url: https://developers.neverbounce.com/
servers:
- url: https://api.neverbounce.com/v4
  description: NeverBounce v4 production API
security:
- ApiKeyQuery: []
- BearerAuth: []
tags:
- name: Jobs
  description: Bulk list verification jobs
paths:
  /jobs/create:
    post:
      tags:
      - Jobs
      summary: Create a verification job
      description: Creates a bulk verification job from either a remote URL containing a CSV/list of emails or from inline supplied data.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobCreateRequest'
      responses:
        '200':
          description: Job created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCreateResponse'
  /jobs/parse:
    post:
      tags:
      - Jobs
      summary: Parse a previously uploaded job
      description: Begins parsing of an uploaded list to prepare it for verification.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - job_id
              properties:
                key:
                  type: string
                job_id:
                  type: integer
                auto_start:
                  type: boolean
      responses:
        '200':
          description: Parse acknowledgement
  /jobs/start:
    post:
      tags:
      - Jobs
      summary: Start verification of a parsed job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - job_id
              properties:
                key:
                  type: string
                job_id:
                  type: integer
                run_sample:
                  type: boolean
      responses:
        '200':
          description: Start acknowledgement
  /jobs/status:
    get:
      tags:
      - Jobs
      summary: Get job status
      parameters:
      - name: key
        in: query
        required: false
        schema:
          type: string
      - name: job_id
        in: query
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Job status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobStatusResponse'
  /jobs/results:
    get:
      tags:
      - Jobs
      summary: Get paginated job results
      parameters:
      - name: key
        in: query
        required: false
        schema:
          type: string
      - name: job_id
        in: query
        required: true
        schema:
          type: integer
      - name: page
        in: query
        required: false
        schema:
          type: integer
      - name: items_per_page
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Paginated job results
  /jobs/download:
    get:
      tags:
      - Jobs
      summary: Download completed job results as CSV
      parameters:
      - name: key
        in: query
        required: false
        schema:
          type: string
      - name: job_id
        in: query
        required: true
        schema:
          type: integer
      - name: valids
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: invalids
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: disposables
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: catchalls
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: unknowns
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
      responses:
        '200':
          description: CSV download
          content:
            text/csv: {}
components:
  schemas:
    JobCreateResponse:
      type: object
      properties:
        status:
          type: string
        job_id:
          type: integer
        execution_time:
          type: integer
    JobStatusResponse:
      type: object
      properties:
        status:
          type: string
        id:
          type: integer
        job_status:
          type: string
          enum:
          - under_review
          - queued
          - failed
          - complete
          - running
          - parsing
          - waiting
          - waiting_analyzed
          - uploading
        total:
          type: object
          additionalProperties: true
        bounce_estimate:
          type: number
        percent_complete:
          type: number
        created_at:
          type: string
          format: date-time
    JobCreateRequest:
      type: object
      required:
      - input
      - input_location
      properties:
        key:
          type: string
        input:
          description: Either a remote URL or an inline list of email rows
          oneOf:
          - type: string
          - type: array
            items:
              type: array
              items:
                type: string
        input_location:
          type: string
          enum:
          - remote_url
          - supplied
        filename:
          type: string
        auto_parse:
          type: boolean
        auto_start:
          type: boolean
        run_sample:
          type: boolean
        allow_manual_review:
          type: boolean
        request_meta_data:
          type: object
          properties:
            leverage_historical_data:
              type: integer
              enum:
              - 0
              - 1
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: key
    BearerAuth:
      type: http
      scheme: bearer
externalDocs:
  description: NeverBounce API getting started
  url: https://developers.neverbounce.com/docs/api-getting-started