GET
https://spideriq.di-atomic.com
/
api
/
v1
/
jobs
/
spiderMaps
/
campaigns
/
{campaign_id}
/
jobs
/
{job_id}
/
results
Get Job Results (Blocking)
curl --request GET \
  --url https://spideriq.di-atomic.com/api/v1/jobs/spiderMaps/campaigns/{campaign_id}/jobs/{job_id}/results \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "job_id": "<string>",
  "campaign_id": "<string>",
  "status": "<string>",
  "progress": {
    "current_stage": "<string>",
    "stages": [
      {}
    ],
    "elapsed_seconds": 123
  },
  "businesses_total": 123,
  "businesses_with_domains": 123,
  "businesses_filtered": 123,
  "spidersite_completed": 123,
  "spidersite_failed": 123,
  "spiderverify_completed": 123,
  "spiderverify_failed": 123,
  "total_emails_found": 123,
  "total_valid_emails": 123,
  "businesses": [
    {
      "business_name": "<string>",
      "business_place_id": "<string>",
      "business_address": "<string>",
      "business_phone": "<string>",
      "business_rating": 123,
      "business_website": "<string>",
      "domain_filtered": true,
      "filter_reason": "<string>",
      "spidersite_status": "<string>",
      "pages_crawled": 123,
      "emails_found": [
        {}
      ],
      "phones_found": [
        {}
      ],
      "social_media": {},
      "company_info": {},
      "team_members": [
        {}
      ],
      "compendium": "<string>",
      "spiderverify_status": "<string>",
      "emails_verified": [
        {}
      ],
      "valid_emails_count": 123,
      "spidersite_error": "<string>",
      "spiderverify_error": "<string>"
    }
  ],
  "processing_time_seconds": 123,
  "spidersite_timed_out": true,
  "spiderverify_timed_out": true,
  "error_message": "<string>"
}

Overview

v2.16.0 Feature: This endpoint blocks until all workflow stages complete for a specific SpiderMaps job, then returns aggregated results from all three services (SpiderMaps + SpiderSite + SpiderVerify). Unlike /workflow-results which returns results for the entire campaign grouped by location, this endpoint focuses on a single job and returns ALL businesses from that job with their complete workflow data.
Blocking Behavior: By default, this endpoint waits until all businesses in the job complete processing (or timeout). Use wait=false to poll for current status instead.
Use Case: Perfect for n8n/Xano webhooks or real-time integrations where you need to wait for results before proceeding to the next step.

Path Parameters

campaign_id
string
required
The campaign ID returned from the submit endpoint (e.g., “camp_lu_restaurants_20251223_abc123”)
job_id
string
required
The SpiderMaps job UUID returned from the /next endpoint

Query Parameters

wait
boolean
default:"true"
Controls blocking behavior:
  • true (default): Block until all workflow stages complete or timeout
  • false: Return current status immediately (for polling)

Timeouts

StageTimeoutDescription
SpiderSite5 minutesPer-business website crawling timeout
SpiderVerify2 minutesPer-business email verification timeout
Maximum10 minutesAbsolute maximum wait time
If a timeout occurs, the endpoint returns a partial status with all available data collected up to that point.

Response

success
boolean
Whether the request completed successfully (true for completed or partial status)
job_id
string
The SpiderMaps job UUID
campaign_id
string
The campaign identifier
status
string
Current job status: queued, processing, completed, failed, partial
progress
object
Progress information (included while processing)
businesses_total
integer
Total number of businesses in this job
businesses_with_domains
integer
Businesses with valid website domains (not filtered)
businesses_filtered
integer
Businesses filtered out (social media, review sites, etc.)
spidersite_completed
integer
Number of SpiderSite jobs completed
spidersite_failed
integer
Number of SpiderSite jobs failed
spiderverify_completed
integer
Number of SpiderVerify jobs completed
spiderverify_failed
integer
Number of SpiderVerify jobs failed
total_emails_found
integer
Total emails extracted from websites
total_valid_emails
integer
Total emails confirmed as valid/deliverable
businesses
array
Array of all businesses with complete workflow data
processing_time_seconds
number
Total time spent processing (or waiting)
spidersite_timed_out
boolean
Whether SpiderSite timed out for any business
spiderverify_timed_out
boolean
Whether SpiderVerify timed out for any business
error_message
string
Error message if the job failed

Status Values

StatusDescription
queuedJob is waiting for workers to pick it up
processingWorkflow stages are currently running
completedAll workflow stages finished successfully
failedProcessing failed (check error_message)
partialTimeout occurred but partial data is available

Examples

# Wait for job completion (blocks up to 10 minutes)
curl -X GET "https://spideriq.di-atomic.com/api/v1/jobs/spiderMaps/campaigns/camp_lu_restaurants_20251223_abc123/jobs/79719220-6309-4742-9850-adb988b5dd4a/results" \
  -H "Authorization: Bearer <your_token>"
Completed Response:
{
  "success": true,
  "job_id": "79719220-6309-4742-9850-adb988b5dd4a",
  "campaign_id": "camp_lu_restaurants_20251223_abc123",
  "status": "completed",
  "businesses_total": 100,
  "businesses_with_domains": 69,
  "businesses_filtered": 4,
  "spidersite_completed": 69,
  "spidersite_failed": 0,
  "spiderverify_completed": 43,
  "spiderverify_failed": 0,
  "total_emails_found": 201,
  "total_valid_emails": 8,
  "businesses": [
    {
      "business_name": "Café des Tramways",
      "business_place_id": "0x47954f2add89aa79:0x74c726ae28575bec",
      "business_address": "79 Av. Pasteur, 2311 Luxembourg",
      "business_phone": "35226201136",
      "business_rating": 4.4,
      "business_website": "http://www.cafedestramways.lu/",
      "domain_filtered": false,
      "filter_reason": null,
      "spidersite_status": "completed",
      "pages_crawled": 2,
      "emails_found": ["info@cafedestramways.lu"],
      "phones_found": [],
      "social_media": {},
      "company_info": {
        "industry": "Restaurant/Bar",
        "key_services": ["Flammekueches", "Burgers", "Cocktails"],
        "target_audience": "Locals and tourists in Luxembourg"
      },
      "team_members": [],
      "compendium": null,
      "spiderverify_status": "completed",
      "emails_verified": [
        {
          "email": "info@cafedestramways.lu",
          "status": "risky",
          "score": 90,
          "is_deliverable": true,
          "is_free_email": false,
          "is_disposable": false,
          "is_role_account": true
        }
      ],
      "valid_emails_count": 0,
      "spidersite_error": null,
      "spiderverify_error": null
    },
    {
      "business_name": "Glacier Bargello",
      "business_place_id": "0x479548d196113821:0x6be5b2fd9b7d473f",
      "business_address": "13 Rue du Fort Elisabeth, 1463 Luxembourg",
      "business_phone": "35226296097",
      "business_rating": 4.7,
      "business_website": "http://www.bargello.lu/",
      "domain_filtered": false,
      "filter_reason": null,
      "spidersite_status": "completed",
      "pages_crawled": 3,
      "emails_found": ["gelato@bargello.lu"],
      "phones_found": [],
      "social_media": {},
      "company_info": {},
      "team_members": [],
      "compendium": null,
      "spiderverify_status": "completed",
      "emails_verified": [
        {
          "email": "gelato@bargello.lu",
          "status": "valid",
          "score": 100,
          "is_deliverable": true,
          "is_free_email": false,
          "is_disposable": false,
          "is_role_account": false
        }
      ],
      "valid_emails_count": 1,
      "spidersite_error": null,
      "spiderverify_error": null
    }
  ],
  "processing_time_seconds": 245.3,
  "spidersite_timed_out": false,
  "spiderverify_timed_out": false
}
Partial Response (Timeout):
{
  "success": true,
  "job_id": "79719220-6309-4742-9850-adb988b5dd4a",
  "campaign_id": "camp_lu_restaurants_20251223_abc123",
  "status": "partial",
  "businesses_total": 100,
  "businesses_with_domains": 69,
  "businesses_filtered": 4,
  "spidersite_completed": 69,
  "spidersite_failed": 0,
  "spiderverify_completed": 43,
  "spiderverify_failed": 0,
  "total_emails_found": 201,
  "total_valid_emails": 8,
  "businesses": [...],
  "processing_time_seconds": 601.36,
  "spidersite_timed_out": true,
  "spiderverify_timed_out": true
}

Error Responses

Invalid Job ID Format

{
  "detail": "Invalid job_id format - must be a valid UUID"
}

Campaign Not Found

{
  "detail": "Campaign not found"
}

Job Not Found

{
  "detail": "Job not found"
}

No Workflow Configured

{
  "detail": "This campaign does not have workflow configuration enabled"
}

Comparison with /workflow-results

Feature/jobs/{job_id}/results/workflow-results
ScopeSingle jobEntire campaign
GroupingFlat list of businessesGrouped by location
BlockingYes (optional)No
Use caseReal-time integrationsBatch processing
Response sizeSmaller (one job)Larger (all jobs)