POST
https://spideriq.ai
/
api
/
v1
/
jobs
/
spiderLanding
/
submit
Submit SpiderLanding Job
curl --request POST \
  --url https://spideriq.ai/api/v1/jobs/spiderLanding/submit \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "payload": {
    "url": "<string>",
    "ad_id": "<string>",
    "options": {
      "capture_screenshot": true,
      "capture_full_page": true,
      "capture_html_bundle": true,
      "extract_content": true,
      "dismiss_popups": true,
      "scroll_for_lazy_load": true,
      "viewport": {
        "width": 123,
        "height": 123
      },
      "timeout_seconds": 123,
      "max_redirects": 123
    },
    "test": true
  }
}
'
{
  "job_id": "<string>",
  "type": "<string>",
  "status": "<string>",
  "created_at": "<string>",
  "from_cache": true,
  "message": "<string>",
  "data.capture": {
    "initial_url": "<string>",
    "final_url": "<string>",
    "redirect_chain": [
      {}
    ],
    "screenshot_fold_url": "<string>",
    "screenshot_full_url": "<string>",
    "html_bundle_url": "<string>",
    "captured_at": "<string>"
  },
  "data.extracted": {
    "meta": {},
    "content": {},
    "design": {}
  },
  "data.errors": [
    {}
  ],
  "data.duration_ms": 123
}

Overview

SpiderLanding captures and analyzes landing pages from URLs (typically Facebook ad tracking links). It provides:
  • Screenshots: Above-fold and full-page captures via Playwright
  • HTML Bundles: Self-contained HTML with embedded assets via Monolith
  • AI Extraction: Marketing content extraction via Claude (optional)
  • Redirect Tracking: Full chain from tracking URL to final landing page
Perfect For:
  • Competitor ad research and landing page analysis
  • Marketing funnel documentation
  • A/B test monitoring
  • Archiving campaign landing pages

Best For

  • Capturing landing pages from Facebook/Google ad tracking URLs
  • Documenting competitor marketing funnels
  • Archiving landing pages before they change
  • Extracting marketing copy, CTAs, and testimonials
  • Analyzing landing page design patterns

Request Body

payload
object
required
Job configuration payload

Response

job_id
string
Unique job identifier (UUID).
type
string
Job type: spiderLanding
status
string
Initial status: queued
created_at
string
ISO 8601 timestamp.
from_cache
boolean
Whether result was returned from deduplication cache.
message
string
Status message (e.g., “Job submitted to TEST queue”).

Result Schema

When the job completes, use GET /api/v1/jobs/{job_id}/results to retrieve:
{
  "success": true,
  "job_id": "uuid",
  "type": "spiderLanding",
  "status": "completed",
  "processing_time_seconds": 8.5,
  "worker_id": "spider-landing-main-1",
  "completed_at": "2026-01-19T12:00:05Z",
  "data": {
    "capture": {
      "initial_url": "https://tracking.example.com/ad?id=123",
      "final_url": "https://landing-page.com/offer",
      "redirect_chain": [
        "https://tracking.example.com/ad?id=123",
        "https://landing-page.com/redirect",
        "https://landing-page.com/offer"
      ],
      "screenshot_fold_url": "https://media.spideriq.ai/client-xxx/landings/job-id/fold.png",
      "screenshot_full_url": "https://media.spideriq.ai/client-xxx/landings/job-id/full.png",
      "html_bundle_url": "https://media.spideriq.ai/client-xxx/landings/job-id/page.html",
      "captured_at": "2026-01-19T12:00:05Z"
    },
    "extracted": {
      "meta": {
        "title": "Get 50% Off Today | Amazing Product",
        "description": "Limited time offer on our best-selling product",
        "og_image": "https://landing-page.com/og-image.jpg"
      },
      "content": {
        "headline": "Transform Your Business in 30 Days",
        "subheadline": "Join 10,000+ companies using our platform",
        "cta_primary": {
          "text": "Start Free Trial",
          "url": "https://landing-page.com/signup",
          "style": "button"
        },
        "value_propositions": [
          "Save 10+ hours per week",
          "Increase revenue by 30%",
          "No credit card required"
        ],
        "testimonials": [
          {
            "quote": "Best tool we've ever used",
            "author": "John Smith",
            "title": "CEO, TechCorp"
          }
        ],
        "trust_signals": [
          "10,000+ customers",
          "Featured in Forbes",
          "SOC 2 Certified"
        ]
      },
      "design": {
        "layout_type": "hero_features_testimonials_cta",
        "color_palette": ["#FF5733", "#1A1A1A", "#FFFFFF"],
        "font_families": ["Inter", "system-ui"],
        "has_video": false,
        "has_chat_widget": true,
        "form_fields": ["email", "name"]
      }
    },
    "errors": [],
    "duration_ms": 8500
  },
  "error_message": null
}

Response Fields

data.capture
object
Capture results
data.extracted
object
AI-extracted marketing content (null if AI extraction disabled or failed)
data.errors
array
List of non-fatal errors that occurred during capture.
data.duration_ms
integer
Total processing time in milliseconds.

Examples

Basic Capture

curl -X POST "https://spideriq.ai/api/v1/jobs/spiderLanding/submit" \
  -H "Authorization: Bearer client_id:api_key:api_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "url": "https://example.com"
    }
  }'

Full Options

curl -X POST "https://spideriq.ai/api/v1/jobs/spiderLanding/submit" \
  -H "Authorization: Bearer client_id:api_key:api_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "url": "https://tracking.example.com/ad?id=123",
      "ad_id": "fb_123456789",
      "options": {
        "capture_screenshot": true,
        "capture_full_page": true,
        "capture_html_bundle": true,
        "extract_content": true,
        "dismiss_popups": true,
        "scroll_for_lazy_load": true,
        "viewport": {"width": 1920, "height": 1080},
        "timeout_seconds": 90,
        "max_redirects": 15
      }
    }
  }'

Screenshot Only (No AI)

curl -X POST "https://spideriq.ai/api/v1/jobs/spiderLanding/submit" \
  -H "Authorization: Bearer client_id:api_key:api_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "url": "https://competitor.com/landing",
      "options": {
        "capture_screenshot": true,
        "capture_full_page": true,
        "capture_html_bundle": false,
        "extract_content": false
      }
    }
  }'

Test Mode

curl -X POST "https://spideriq.ai/api/v1/jobs/spiderLanding/submit" \
  -H "Authorization: Bearer client_id:api_key:api_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "url": "https://example.com",
      "test": true
    }
  }'

Processing Time

Page TypeExpected Time
Simple static page3-5 seconds
Marketing landing page15-30 seconds
Complex SPA30-60 seconds
Heavy page with timeout60-90 seconds
Pages that never reach “network idle” state will timeout but still capture whatever has loaded.

Storage

Files are stored in your client’s SpiderMedia bucket:
  • Path: landings/{job_id}/
  • Files: fold.png, full.png, page.html
  • Public URL: https://media.spideriq.ai/{bucket_name}/landings/{job_id}/{filename}
Files are retained according to your SpiderMedia storage policy.

Error Handling

SpiderLanding uses graceful degradation - errors in one step don’t fail the entire job:
ErrorBehavior
Navigation timeoutCaptures whatever loaded
Popup dismissal failsContinues without dismissing
Screenshot failsOther captures still attempted
HTML bundle failsFalls back to simple HTML
AI extraction failsReturns extracted: null
All errors are recorded in data.errors array.