NeverBounce Jobs API

Bulk list verification jobs — create, parse, start, status, results, search, delete, download.

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/neverbounce-jobs-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

neverbounce-jobs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: NeverBounce Jobs API
  version: '4.2'
  description: Bulk list verification jobs. Part of the NeverBounce v4 email verification API. Harvested
    from the OpenAPI definition NeverBounce publishes behind its interactive API reference at developers.neverbounce.com
    (ReadMe API Designer definition `neverbounce-api.json`).
  contact:
    name: NeverBounce Support
    email: support@neverbounce.com
    url: https://developers.neverbounce.com/
servers:
- url: https://api.neverbounce.com/v4.2
security:
- sec0: []
tags:
- name: Jobs
  description: Bulk list verification jobs
paths:
  /jobs/search:
    get:
      summary: /search
      description: ''
      operationId: jobs-search
      parameters:
      - name: job_id
        in: query
        description: Filter jobs based on it's id
        schema:
          type: integer
          format: int32
      - name: filename
        in: query
        description: Filter jobs based on the filename (exact match)
        schema:
          type: string
      - name: job_status
        in: query
        description: Filter jobs by the job status
        schema:
          type: string
      - name: page
        in: query
        description: The page to grab the jobs from
        schema:
          type: integer
          format: int32
          default: 1
      - name: items_per_page
        in: query
        description: The number of jobs to display
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"status\": \"success\",\n  \"total_results\": 1,\n  \"total_pages\": 1,\n\
                    \  \"query\": {\n    \"page\": 1,\n    \"items_per_page\": 10,\n  },\n  \"results\"\
                    : [\n    {\n      \"id\": 277461,\n      \"status\": \"complete\",\n      \"filename\"\
                    : \"Created from Array.csv\",\n      \"created_at\": \"2017-07-25 16:25:19\",\n  \
                    \    \"started_at\": \"2017-07-25 16:25:30\",\n      \"finished_at\": \"2017-07-25\
                    \ 16:25:31\",\n      \"total\": {\n        \"records\": 2,\n        \"billable\":\
                    \ 2,\n        \"processed\": 2,\n        \"valid\": 0,\n        \"invalid\": 2,\n\
                    \        \"catchall\": 0,\n        \"disposable\": 0,\n        \"unknown\": 0,\n \
                    \       \"duplicates\": 0,\n        \"bad_syntax\": 0\n      },\n      \"bounce_estimate\"\
                    : 0,\n      \"percent_complete\": 100\n    }\n  ],\n  \"execution_time\": 388\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: curl
          code: "curl --request GET\\\n  --url 'https://api.neverbounce.com/v4.2/jobs/search?key={api_key}'"
        - language: php
          code: '<?php


            // Set API key

            \NeverBounce\Auth::setApiKey($api_key);


            $query = [

            //    ''job_id'' => 10000, // Filter jobs based on id

            //    ''filename'' => ''Book1.csv'', // Filter jobs based on filename

            //    ''job_status'' => ''complete'', // Show completed jobs only

            //    ''page'' => 1, // Page to start from

            //    ''items_per_page'' => 10, // Number of items per page

            ];


            // Search for jobs in your account

            $job = \NeverBounce\Jobs::search($query);'
        - language: javascript
          code: "// Initialize NeverBounce client\nconst client = new NeverBounce({apiKey: myApiKey});\n\
            \n// Search jobs\nclient.jobs.search({\n//    'job_id': 10000, // Filter jobs based on id\n\
            //    'filename': 'Book1.csv', // Filter jobs based on filename\n//    'job_status': 'complete',\
            \ // Show completed jobs only\n//    'page': 1, // Page to start from\n//    'items_per_page':\
            \ 10, // Number of items per page\n}).then(\n    resp => // Handle successful response,\n\
            \    err => // Handle error response\n););"
          name: NodeJs
        - language: python
          code: "import neverbounce_sdk\n\n# Create sdk client\nclient = neverbounce_sdk.client(api_key='api_key)\n\
            \n# Get jobs\njobs = client.jobs_search(\n    # job_id=10000,  # Filter jobs based on id\n\
            \    # filename='Book1.csv',  # Filter jobs based on filename\n    # job_status='complete',\
            \  # Show completed jobs only\n    # page=1,  # Page to start from\n    # items_per_page=10,\
            \  # Number of items per page\n)\n\n# iterate through jobs\nfor job in jobs:\n    print(job)"
        - language: go
          code: "// Instantiate wrapper\nclient := neverbounce.New(\"api_key\")\n\n// Search for jobs\n\
            searchResults, err := client.Jobs.Search(&nbModels.JobsSearchRequestModel{\n  //JobFilename:\
            \ \"MyListName.csv\",\n  //JobID: 289010,\n  //JobStatus: \"complete\",\n  //ItemsPerPage:\
            \ 10,\n  //Page: 1,\n})"
        - language: ruby
          code: '# Instantiate API client

            client = NeverBounce::API::Client.new(api_key: "api_key")


            # Search for jobs

            resp = client.jobs_search(page: 1, per_page: 10)


            # Process items:

            resp.results.each do |item|'
        - language: csharp
          code: '// Create SDK object

            var sdk = new NeverBounceSdk("api_key");


            // Create search model

            var model = new JobSearchRequestModel();

            //model.job_id = 288025;

            //model.job_status = "complete";

            //model.filename = "MyFile.csv";

            //model.items_per_page = 10;

            //model.page = 1;


            // Get jobs

            JobSearchResponseModel resp = await sdk.Jobs.Search(model);'
          name: .NET
        - language: java
          code: "// Instantiate Client\nNeverbounceClient neverbounceClient = NeverbounceClientFactory.create(apiKey);\n\
            \n// Search for jobs\nJobsSearchResponse jobsSearchResponse = neverbounceClient\n        .prepareJobsSearchRequest()\n\
            \        .withJobId(jobId)\n        .build()\n        .execute();"
        samples-languages:
        - curl
        - php
        - javascript
        - python
        - go
        - ruby
        - csharp
        - java
      tags:
      - Jobs
  /jobs/create:
    post:
      summary: /create
      description: ''
      operationId: jobs-create
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - input_location
              - input
              properties:
                input_location:
                  type: string
                  description: The type of input being supplied. Accepted values are "remote_url" and
                    "supplied".
                input:
                  type: string
                  description: The input to be verified
                  format: json
                auto_parse:
                  type: boolean
                  description: 'Should we begin parsing the job immediately? (default: false)'
                  default: false
                auto_start:
                  type: boolean
                  description: 'Should we run the job immediately after being parsed? (default: false)'
                  default: false
                run_sample:
                  type: boolean
                  description: 'Should this job be run as a sample? (default: false)'
                  default: false
                filename:
                  type: string
                  description: This will be what's displayed in the dashboard when viewing this job
                request_meta_data:
                  type: object
                  description: Miscellanious request meta data
                  properties:
                    leverage_historical_data:
                      type: boolean
                      description: Control historical data usage, set to false to use real-time only verification
                      default: true
                allow_manual_review:
                  type: boolean
                  description: Denotes whether or not the job should be allowed to fall into manual review
                  default: false
                callback_url:
                  type: string
                  description: An optional URL that we should send events to during the lifecycle of the
                    job
                callback_headers:
                  type: string
                  description: An optional array of headers that should be included when sending events
                    to the callback_url
                  format: json
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"status\": \"success\",\n  \"job_id\": 150970,\n  \"execution_time\":\
                    \ 712\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  job_id:
                    type: integer
                    example: 150970
                    default: 0
                  execution_time:
                    type: integer
                    example: 712
                    default: 0
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: curl
          code: "# x-www-form-urlencoded request w/ remote_url input\ncurl --request POST\\\n  --url https://api.neverbounce.com/v4.2/jobs/create\\\
            \n  --data key={api_key}\\\n  --data input_location='remote_url'\\\n  --data filename='SampleNeverBounceAPI.csv'\\\
            \n  --data auto_parse=true\\\n  --data auto_start=true\\\n  --data allow_manual_review=false\\\
            \n  --data input='https://mydomain.com/my_file.csv'\\\n  --data callback_url='https://mydomain.com/callbacks/neverbounce'\\\
            \n  --data 'callback_headers[X-My-Token]=123abc'"
          name: cURL Remote URL
        - language: curl
          code: "# x-www-form-urlencoded request w/ supplied data\ncurl --request POST\\\n  --url https://api.neverbounce.com/v4.2/jobs/create\\\
            \n  --data key={api_key}\\\n  --data input_location='supplied'\\\n  --data filename='SampleNeverBounceAPI.csv'\\\
            \n  --data auto_parse=true\\\n  --data auto_start=true\\\n  --data allow_manual_review=false\\\
            \n  --data 'input[0][0]=support%40neverbounce.com'\\\n  --data 'input[0][1]=Fred%20McValid'\\\
            \n  --data 'input[1][0]=invalid%40neverbounce.com'\\\n  --data 'input[1][1]=Bob%20McInvalid'\n\
            \  --data callback_url='https://mydomain.com/callbacks/neverbounce'\\\n  --data 'callback_headers[X-My-Token]=123abc'\n\
            \  \n# JSON encoded request w/ supplied data\ncurl --request POST\\\n  --header \"Content-Type:\
            \ application/json\"\\\n  --url https://api.neverbounce.com/v4.2/jobs/create\\\n  --data '{\n\
            \    \"key\": {api_key},\n    \"input_location\": \"supplied\",\n    \"filename\": \"SampleNeverBounceAPI.csv\"\
            ,\n    \"auto_start\": true,\n    \"auto_parse\": true,\n    \"allow_manual_review\": false,\n\
            \    \"input\": [\n        [\n            \"support@neverbounce.com\",\n            \"Fred\
            \ McValid\"\n        ],\n        [\n            \"invalid@neverbounce.com\",\n           \
            \ \"Bob McInvalid\"\n        ]\n    ],\n    \"callback_url\": \"https://mydomain.com/callbacks/neverbounce\"\
            ,\n    \"callback_headers\": {\n    \t\"X-My-Token\": \"123abc\"\n    }\n}'"
          name: cURL Supplied Data
        - language: php
          code: "<?php\n\n// Set API key\n\\NeverBounce\\Auth::setApiKey($api_key);\n\n// Build json\n\
            $arr = [\n    [\n        'support@neverbounce.com',\n        'Fred McValid'\n    ],\n    [\n\
            \        'invalid@neverbounce.com',\n        'Bob McInvalid'\n    ]\n];\n\n// Make a new job\
            \ with the supplied data\n$job = \\NeverBounce\\Jobs::create(\n  $arr, // input\n  \\NeverBounce\\\
            Jobs::SUPPLIED_INPUT, // Either `supplied` or `remote_url`\n  'SampleNeverBounceAPI.csv',\
            \ // Friendly name that can be used to identify job\n  false, // Run as sample\n  true, //\
            \ Auto parse\n  true, // Auto start,\n  false, // Allow manual review\n  null, // Callback\
            \ URL\n  null // Callback Headers\n);\n"
        - language: javascript
          code: "// Initialize NeverBounce client\nconst client = new NeverBounce({apiKey: myApiKey});\n\
            \n// Verify a list of emails\nclient.jobs.create(\n    [\n        {\n            'id': '12345',\n\
            \            'email': 'support@neverbounce.com',\n            'name': 'Fred McValid'\n   \
            \     },\n        {\n            'id': '12346',\n            'email': 'invalid@neverbounce.com',\n\
            \            'name': 'Bob McInvalid'\n        }\n    ],\n    'supplied', // Either `supplied`\
            \ or `remote_url`\n    'Created from Array.csv', // Friendly name that can be used to identify\
            \ job\n  \tfalse, // Run sample\n  \ttrue, // Auto parse\n    true // Auto run,\n    false,\
            \ // Allow manual review\n    null, // Callback URL\n    null // Callback Headers\n).then(\n\
            \    resp => // Handle success response\n    err => // Handle error response\n);"
          name: NodeJs
        - language: python
          code: "import neverbounce_sdk\n\n# Create sdk client\nclient = neverbounce_sdk.client(api_key='api_key')\n\
            \n# Create array of data\ninputData = [\n  {\n    'id': '12345',\n    'email': 'support@neverbounce.com',\n\
            \    'name': 'Fred McValid'\n  },\n  {\n    'id': '12346',\n    'email': 'invalid@neverbounce.com',\n\
            \    'name': 'Bob McInvalid'\n  }\n]\n\n# Create Job\nresp = client.jobs_create(\n  input=inputData,\n\
            \  filename=\"Created from Python Wrapper.csv\",\n  # auto_parse=True,\n  # auto_start=True,\n\
            \  # as_sample=False,\n  # from_url=False,\n  # allow_manual_review=None,\n  # callback_url=None\n\
            \  # callback_headers=None\n)"
        - language: go
          code: "// Instantiate wrapper\nclient := neverbounce.New(\"api_key\")\n\n// Build data map\n\
            createData := map[int]interface{}{}\ncreateData[0] = map[string]interface{}{\n  \"id\":  \
            \  12345,\n  \"email\": \"support@neverbounce.com\",\n  \"name\":  \"Bob McValid\",\n}\ncreateData[1]\
            \ = map[string]interface{}{\n  \"id\":    12346,\n  \"email\": \"invalid@neverbounce.com\"\
            ,\n  \"name\":  \"Fred McInvalid\",\n}\n\n// Create a job from supplied data\njobInfo, err\
            \ := client.Jobs.CreateFromSuppliedData(&nbModels.JobsCreateSuppliedDataRequestModel{\n  SuppliedData:\
            \ createData,\n  AutoParse:    false,\n  AutoRun:      false,\n  RunSample:    false,\n  FileName:\
            \     \"Created from Golang.csv\",\n  AllowManualReview: false,\n  // CallbackURL: string\n\
            \  // CallbackHeaders: map[string]interface{}\n})\nif err != nil {\n  panic(err)\n}\n\n//\
            \ Create a job from a remote URL\njobInfo, err := client.Jobs.CreateFromRemoteURL(&nbModels.JobsCreateRemoteURLRequestModel{\n\
            \  RemoteURL: \"https://example.com/file.csv\",\n  AutoParse: true,\n  AutoRun:   false,\n\
            \  RunSample: false,\n  FileName:  \"Created from Golang.csv\",\n  AllowManualReview: false,\n\
            \  // CallbackURL: string\n  // CallbackHeaders: map[string]interface{}\n})\nif err != nil\
            \ {\n  panic(err)\n}"
        - language: ruby
          code: "# Instantiate API client\nclient = NeverBounce::API::Client.new(api_key: \"api_key\"\
            )\n\n# Create job with supplied input\nresp = client.jobs_create(\n  supplied_input: [\n \
            \   [\"alice@isp.com\", \"Alice Roberts\"], \n    [\"bob.smith@gmail.com\", \"Bob Smith\"\
            ]\n  ]\n)\n\n# Create job with remote file\nresp = client.jobs_create(remote_input: \"http://example.com/emails.csv\"\
            , filename: \"emails.csv\")"
        - language: csharp
          code: "// Create SDK object\nvar sdk = new NeverBounceSdk(\"api_key\");\n\n/**\n * Create a\
            \ job using supplied data\n */\n\n// Create supplied data model\nvar model = new JobCreateSuppliedDataRequestModel();\n\
            model.filename = \"Created From dotNET.csv\";\nmodel.auto_parse = true;\nmodel.auto_start\
            \ = false;\nmodel.input = new List<object>();\nmodel.input.Add(new {id = \"3\", email = \"\
            support@neverbounce.com\", name = \"Fred McValid\"});\nmodel.input.Add(new {id = \"4\", email\
            \ = \"invalid@neverbounce.com\", name = \"Bob McInvalid\"});\nmodel.allow_manual_review =\
            \ false;\n//model.callback_url = \"https://example.com/callback/neverbounce\";\n//model.callback_headers\
            \ = Dictionary<string, string>\n\n// Create job from supplied data\nJobCreateResponseModel\
            \ resp = await sdk.Jobs.CreateFromSuppliedData(model);\n\n/**\n * Create a job using a remote\
            \ url\n */\n\n// Create remote url model\nvar model2 = new JobCreateRemoteUrlRequestModel();\n\
            model.filename = \"Created From dotNET.csv\";\nmodel.auto_parse = true;\nmodel.auto_start\
            \ = false;\nmodel.input = \"https://example.com/file.csv\";\nmodel.allow_manual_review = false;\n\
            //model.callback_url = \"https://example.com/callback/neverbounce\";\n//model.callback_headers\
            \ = Dictionary<string, string>\n\n// Create job from remote url\nJobCreateResponseModel resp2\
            \ = await sdk.Jobs.CreateFromRemoteUrl(model);"
          name: .NET
        samples-languages:
        - curl
        - php
        - javascript
        - python
        - go
        - ruby
        - csharp
      tags:
      - Jobs
  /jobs/parse:
    post:
      summary: /parse
      description: ''
      operationId: jobs-parse
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - job_id
              properties:
                job_id:
                  type: integer
                  description: The id of the job to parse
                  format: int32
                auto_start:
                  type: boolean
                  description: 'Should the job start processing immediately after it''s parsed? (default:
                    false)'
                  default: false
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"status\": \"success\",\n  \"queue_id\": \"NB-PQ-59246392E9E5D\",\n  \"\
                    execution_time\": 712\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  queue_id:
                    type: string
                    example: NB-PQ-59246392E9E5D
                  execution_time:
                    type: integer
                    example: 712
                    default: 0
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: curl
          code: "curl --request POST\\\n  --url https://api.neverbounce.com/v4.2/jobs/parse\\\n  --data\
            \ key={api_key}\\\n  --data job_id={job_id}"
          name: cURL
        - language: php
          code: "<?php\n\n// Set API key\n\\NeverBounce\\Auth::setApiKey($api_key);\n\n// Make a new job\
            \ with the supplied data\n$job = \\NeverBounce\\Jobs::parse(\n  $job_id,\n  //false // Auto\
            \ start\n);"
        - language: javascript
          code: "// Initialize NeverBounce client\nconst client = new NeverBounce({apiKey: myApiKey});\n\
            \n// Parse a job\nclient.jobs.parse(\n  jobId,\n  //false // Auto start\n).then(\n    resp\
            \ => // Handle success response\n    err => // Handle error response\n);"
          name: NodeJs
        - language: python
          code: "import neverbounce_sdk\n\n# Create sdk client\nclient = neverbounce_sdk.client(api_key='api_key')\n\
            \n# Parse job\nresp = client.jobs_parse(\n  job_id=289022,\n  #auto_start=False\n)"
        - language: go
          code: "// Instantiate wrapper\nclient := neverbounce.New(\"api_key\")\n\n// Parse a job\nparseInfo,\
            \ err := client.Jobs.Parse(&nbModels.JobsParseRequestModel{\n  JobID: 296050,\n//  AutoStart:\
            \ false,\n})"
        - language: ruby
          code: '# Instantiate API client

            client = NeverBounce::API::Client.new(api_key: "api_key")


            # Parse job

            resp = client.jobs_parse(job_id: 123)'
        - language: csharp
          code: '// Create SDK object

            var sdk = new NeverBounceSdk("api_key");


            // Create parse job model

            var model = new JobParseRequestModel();

            model.job_id = 290561;

            //model.auto_start = false;


            // Parse job

            JobParseResponseModel resp = await sdk.Jobs.Parse(model);'
          name: .NET
        samples-languages:
        - curl
        - php
        - javascript
        - python
        - go
        - ruby
        - csharp
      tags:
      - Jobs
  /jobs/start:
    post:
      summary: /start
      description: ''
      operationId: jobs-start
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - job_id
              properties:
                job_id:
                  type: integer
                  description: The id of the job to start
                  format: int32
                run_sample:
                  type: boolean
                  description: 'Should this job be run as a sample? (default: false)'
                  default: false
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"status\": \"success\",\n  \"queue_id\": \"NB-PQ-59246392E9E5D\",\n  \"\
                    execution_time\": 712\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  queue_id:
                    type: string
                    example: NB-PQ-59246392E9E5D
                  execution_time:
                    type: integer
                    example: 712
                    default: 0
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: curl
          code: "curl --request POST\\\n  --url https://api.neverbounce.com/v4.2/jobs/start\\\n  --data\
            \ key={api_key}\\\n  --data job_id={job_id}\n  --data allow_manual_review=false"
          name: cURL
        - language: php
          code: '<?php


            // Set API key

            \NeverBounce\Auth::setApiKey($api_key);


            // Start a job that has been parsed

            $job = \NeverBounce\Jobs::start($job_id);'
        - language: javascript
          code: "// Initialize NeverBounce client\nconst client = new NeverBounce({apiKey: myApiKey});\n\
            \n// Start a job\nclient.jobs.start(jobId).then(\n    resp => // Handle successful response\n\
            \    err => // Handle error response\n);"
          name: NodeJs
        - language: python
          code: 'import neverbounce_sdk


            # Create sdk client

            client = neverbounce_sdk.client(api_key=''api_key'')


            # Start job

            resp = client.jobs_start(job_id=289022)'
        - language: go
          code: "// Instantiate wrapper\nclient = neverbounce.New(\"api_key\")\n\n// Start a job\nstartInfo,\
            \ err := client.Jobs.Start(&nbModels.JobsStartRequestModel{\n  JobID: 296050,\n//  RunSample:\
            \ false,\n})"
        - language: ruby
          code: '# Instantiate API client

            client = NeverBounce::API::Client.new(api_key: "api_key")


            # Start a job

            resp = client.client.jobs_start(job_id: 123)'
        - language: csharp
          code: '// Create SDK object

            var sdk = new NeverBounceSdk("api_key");


            // Create start job model

            var model = new JobStartRequestModel();

            model.job_id = 290561;

            //model.run_sample = true;


            // Start job

            JobStartResponseModel resp = await sdk.Jobs.Start(model);'
          name: .NET
        samples-languages:
        - curl
        - php
        - javascript
        - python
        - go
        - ruby
        - csharp
      tags:
      - Jobs
  /jobs/status:
    get:
      summary: /status
      description: ''
      operationId: jobs-status
      parameters:
      - name: job_id
        in: query
        description: The id of the job to check
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"status\": \"success\",\n  \"id\": 277461,\n  \"filename\": \"Created\
                    \ from Array.csv\",\n  \"created_at\": \"2017-07-25 14:52:27\",\n  \"started_at\"\
                    : \"2017-07-25 14:52:40\",\n  \"finished_at\": \"2017-07-25 14:53:06\",\n  \"failure_reason\"\
                    : null,\n  \"total\": {\n    \"records\": 2,\n    \"billable\": 2,\n    \"processed\"\
                    : 2,\n    \"valid\": 0,\n    \"invalid\": 2,\n    \"catchall\": 0,\n    \"disposable\"\
                    : 0,\n    \"unknown\": 0,\n    \"duplicates\": 0,\n    \"bad_syntax\": 0\n  },\n \
                    \ \"bounce_estimate\": 0,\n  \"percent_complete\": 100,\n  \"job_status\": \"complete\"\
                    ,\n  \"execution_time\": 322\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  id:
                    type: integer
                    example: 277461
                    default: 0
                  filename:
                    type: string
                    example: Created from Array.csv
                  created_at:
                    type: string
                    example: '2017-07-25 14:52:27'
                  started_at:
                    type: string
                    example: '2017-07-25 14:52:40'
                  finished_at:
                    type: string
                    example: '2017-07-25 14:53:06'
                  failure_reason: {}
                  total:
                    type: object
                    properties:
                      records:
                        type: integer
                        example: 2
                        default: 0
                      billable:
                        type: integer
                        example: 2
                        default: 0
                      processed:
                        type: integer
                        example: 2
                        default: 0
                      valid:
                        type: integer
                        example: 0
                        default: 0
                      invalid:
                        type: integer
                        example: 2
                        default: 0
                      catchall:
                        type: integer
                        example: 0
                        default: 0
                      disposable:
                        type: integer
                        example: 0
                        default: 0
                      unknown:
                        type: integer
                        example: 0
                        default: 0
                      duplicates:
                        type: integer
                        example: 0
                        default: 0
                      bad_syntax:
                        type: integer
                        example: 0
                        default: 0
                  bounce_estimate:
                    type: integer
                    example: 0
                    default: 0
                  percent_complete:
                    type: integer
                    example: 100
                    default: 0
                  job_status:
                    type: string
                    example: complete
                  execution_time:
                    type: integer
                    example: 322
                    default: 0
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: curl
          code: "curl --request GET\\\n  --url 'https://api.neverbounce.com/v4.2/jobs/status?key={api_key}&job_id={job_id}'"
        - language: php
          code: '<?php


            // Set API key

            \NeverBounce\Auth::setApiKey($api_key);


            // Get the details about the job

            $job = \NeverBounce\Jobs::status($job_id);'
        - language: javascript
          code: "// Initialize NeverBounce client\nconst client = new NeverBounce({apiKey: myApiKey});\n\
            \n// Get the job status\nclient.jobs.status(jobId).then(\n    resp => // Handle successful\
            \ response,\n    err => // Handle error response\n);"
          name: NodeJs
        - language: python
          code: 'import neverbounce_sdk


            # Create sdk client

            client = neverbounce_sdk.client(api_key=''api_key'')


            # Get job status

            resp = client.jobs_status(job_id=289022)'
        - language: go
          code: "// Instantiate wrapper\nclient := neverbounce.New(\"api_key\")\n\n// Query a job's status\n\
            statusInfo, err := client.Jobs.Status(&nbModels.JobsStatusRequestModel{\n  JobID: 296050,\n\
            })"
        - language: ruby
          code: '# Instantiate API client

            client = NeverBounce::API::Client.new(api_key: "api_key")


            # Parse job

            resp = client.jobs_status(job_id: 123)'
        - language: csharp
          code: '// Create SDK object

            var sdk = new NeverBounceSdk("api_key");


            // Create job status model

            var model = new JobStatusRequestModel();

            model.job_id = 290561;


            // Query job status

            JobStatusResponseModel resp = await sdk.Jobs.Status(model);'
          name: .NET
        samples-languages:
        - curl
        - php
        - javascript
        - python
        - go
        - ruby
        - csharp
      tags:
      - J

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/neverbounce/refs/heads/main/openapi/neverbounce-jobs-api-openapi.yml