Email validation (credits)
Bulk Job Status
Check the status and progress of a bulk verification job. Returns emails processed, total count, job status, and retry information.
GET
/
v1
/
bulk
/
{job_id}
Get Bulk Job Status
curl --request GET \
--url https://api.orbisearch.com/v1/bulk/{job_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.orbisearch.com/v1/bulk/{job_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.orbisearch.com/v1/bulk/{job_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.orbisearch.com/v1/bulk/{job_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.orbisearch.com/v1/bulk/{job_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.orbisearch.com/v1/bulk/{job_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbisearch.com/v1/bulk/{job_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "in_progress",
"total_emails": 500,
"emails_processed": 245,
"retry_status": "none",
"submitted_at": "2024-01-15T10:30:00+00:00"
}{
"detail": "Email list cannot be empty"
}{
"detail": "API key required in X-API-Key header"
}{
"detail": "Job not found"
}{
"detail": "Missing required query parameter: email.",
"errors": [
{
"loc": "query.email",
"msg": "Missing required query parameter: email.",
"type": "missing"
}
]
}{
"detail": "Rate limit exceeded. Maximum 20 requests per second per account. Contact us to discuss higher limits.",
"code": "rate_limited"
}Use this endpoint to check the progress of a bulk verification job. Poll it periodically after submitting a job via POST /v1/bulk to determine when your results are ready. The response tells you how many emails have been processed, the current job status, and the status of any automatic retries.
Job status values
| Status | Meaning |
|---|---|
pending | Job has been accepted and is queued for processing. |
in_progress | Job is actively being processed. Check emails_processed for progress. |
partial_complete_retrying | Initial pass is complete. Some emails returned unknown and are being automatically retried. |
complete | All emails have been processed and retries have finished. Results are ready to retrieve. |
failed | The job could not be completed. Contact support if this status persists. |
Retry status values
| Retry status | Meaning |
|---|---|
none | No retries required or initiated. |
pending | Retries have been queued but not yet started. |
partial | Some retries have completed; others are still in progress. |
complete | All retries have finished. |
Authorizations
API key for authentication
Path Parameters
Response
Successful Response
Status information for a bulk verification job.
Unique job identifier.
Example:
"123e4567-e89b-12d3-a456-426614174000"
Current job status: pending, in_progress, partial_complete_retrying, complete, failed.
Available options:
pending, in_progress, partial_complete_retrying, complete, failed Pattern:
^[a-z_]{1,64}$Example:
"in_progress"
Total number of emails in this job.
Example:
500
Number of emails processed so far.
Example:
245
When the job was submitted (ISO 8601 timestamp).
Example:
"2024-01-15T10:30:00+00:00"
Retry status: none, pending, partial, complete.
Available options:
none, pending, partial, complete Example:
"none"
When the job was completed (ISO 8601 timestamp), or null if still in progress.
Example:
null
⌘I
Get Bulk Job Status
curl --request GET \
--url https://api.orbisearch.com/v1/bulk/{job_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.orbisearch.com/v1/bulk/{job_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.orbisearch.com/v1/bulk/{job_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.orbisearch.com/v1/bulk/{job_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.orbisearch.com/v1/bulk/{job_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.orbisearch.com/v1/bulk/{job_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbisearch.com/v1/bulk/{job_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "in_progress",
"total_emails": 500,
"emails_processed": 245,
"retry_status": "none",
"submitted_at": "2024-01-15T10:30:00+00:00"
}{
"detail": "Email list cannot be empty"
}{
"detail": "API key required in X-API-Key header"
}{
"detail": "Job not found"
}{
"detail": "Missing required query parameter: email.",
"errors": [
{
"loc": "query.email",
"msg": "Missing required query parameter: email.",
"type": "missing"
}
]
}{
"detail": "Rate limit exceeded. Maximum 20 requests per second per account. Contact us to discuss higher limits.",
"code": "rate_limited"
}