Skip to main content

System Information

GET/api/v1/system/info

Overview

Retrieve general information about the SpiderIQ API, including version, supported features, and system capabilities. This endpoint does not require authentication.

Authentication

info

No authentication required - This endpoint is publicly accessible.

Response

namestring

API service name

versionstring

Current API version

descriptionstring

Service description

documentation_urlstring

Link to API documentation

supported_job_typesarray

List of supported job types

Values:

  • spiderSite - Website scraping
  • spiderMaps - Google Maps scraping
featuresobject

Available features and capabilities

rate_limitsobject

Default rate limit information

endpointsobject

Available API endpoint categories

Example Request

curl https://spideriq.ai/api/v1/system/info

Example Response

{
"name": "SpiderIQ API",
"version": "1.0.0",
"description": "High-performance web scraping and Google Maps data extraction API",
"documentation_url": "https://spideriq.ai/api",
"supported_job_types": [
"spiderSite",
"spiderMaps"
],
"features": {
"ai_extraction": {
"enabled": true,
"description": "AI-powered content extraction with custom instructions",
"job_types": ["spiderSite"]
},
"screenshot_capture": {
"enabled": true,
"description": "Full-page screenshot capture with CDN storage",
"job_types": ["spiderSite"],
"storage": "Cloudflare R2"
},
"google_maps_api": {
"enabled": true,
"description": "Google Maps Places API integration",
"job_types": ["spiderMaps"]
},
"async_processing": {
"enabled": true,
"description": "Asynchronous job processing with RabbitMQ"
},
"rate_limiting": {
"enabled": true,
"description": "Per-client rate limiting"
}
},
"rate_limits": {
"default_per_minute": 100,
"burst_allowance": 20,
"custom_limits_available": true
},
"endpoints": {
"jobs": [
"/api/v1/jobs/submit",
"/api/v1/jobs/spiderSite/submit",
"/api/v1/jobs/spiderMaps/submit",
"/api/v1/jobs/{id}/status",
"/api/v1/jobs/{id}/results",
"/api/v1/jobs/list",
"/api/v1/jobs/{id}"
],
"system": [
"/api/v1/system/health",
"/api/v1/system/queue-stats",
"/api/v1/system/info"
]
},
"openapi_spec": "https://spideriq.ai/api/v1/openapi.json",
"contact": {
"email": "admin@spideriq.ai",
"support": "https://spideriq.ai"
}
}

Use Cases

Verify API Compatibility

Check if your required features are available:

import requests

def check_feature_support(required_features):
"""Verify required features are supported"""
url = "https://spideriq.ai/api/v1/system/info"
response = requests.get(url)
info = response.json()

features = info.get("features", {})
missing = []

for feature in required_features:
if feature not in features:
missing.append(feature)
elif not features[feature].get("enabled", False):
missing.append(f"{feature} (disabled)")

if missing:
print(f"✗ Missing features: {', '.join(missing)}")
return False
else:
print("✓ All required features available")
return True

# Usage
required = ["ai_extraction", "screenshot_capture"]
check_feature_support(required)

Display API Version

Show API version in your application:

import requests

def get_api_version():
"""Get current API version"""
url = "https://spideriq.ai/api/v1/system/info"
response = requests.get(url)
info = response.json()

return {
"name": info["name"],
"version": info["version"],
"description": info["description"]
}

# Usage
api_info = get_api_version()
print(f"Using {api_info['name']} v{api_info['version']}")

Generate API Client

Use system info to auto-configure API clients:

import requests

class SpiderIQClient:
def __init__(self, auth_token):
self.auth_token = auth_token
self.base_url = "https://spideriq.ai"
self._load_api_info()

def _load_api_info(self):
"""Load API capabilities"""
response = requests.get(f"{self.base_url}/api/v1/system/info")
info = response.json()

self.version = info["version"]
self.supported_job_types = info["supported_job_types"]
self.features = info["features"]
self.rate_limit = info["rate_limits"]["default_per_minute"]

print(f"SpiderIQ API v{self.version} loaded")
print(f"Supported job types: {', '.join(self.supported_job_types)}")

def submit_job(self, url, job_type="spiderSite", **kwargs):
"""Submit a job with auto-validation"""
if job_type not in self.supported_job_types:
raise ValueError(f"Unsupported job type: {job_type}")

# Submit job...
pass

# Usage
client = SpiderIQClient("<your_token>")

Check Job Type Support

Validate job type before submission:

import requests

def is_job_type_supported(job_type):
"""Check if job type is supported"""
url = "https://spideriq.ai/api/v1/system/info"
response = requests.get(url)
info = response.json()

supported = info.get("supported_job_types", [])

if job_type in supported:
print(f"✓ {job_type} is supported")
return True
else:
print(f"✗ {job_type} is not supported")
print(f"Supported types: {', '.join(supported)}")
return False

# Usage
is_job_type_supported("spiderSite") # True
is_job_type_supported("spiderImages") # False

Feature Detection

Check specific feature availability:

async function checkAIExtractionSupport() {
const response = await fetch(
'https://spideriq.ai/api/v1/system/info'
);
const info = await response.json();

const aiFeature = info.features.ai_extraction;

if (aiFeature && aiFeature.enabled) {
console.log('✓ AI extraction is available');
console.log('Supported for:', aiFeature.job_types.join(', '));
return true;
} else {
console.log('✗ AI extraction is not available');
return false;
}
}

// Usage
const hasAI = await checkAIExtractionSupport();
if (hasAI) {
// Use AI extraction feature
}

Get link to documentation programmatically:

import requests
import webbrowser

def open_documentation():
"""Open API documentation in browser"""
url = "https://spideriq.ai/api/v1/system/info"
response = requests.get(url)
info = response.json()

doc_url = info.get("documentation_url")
if doc_url:
print(f"Opening documentation: {doc_url}")
webbrowser.open(doc_url)
else:
print("Documentation URL not available")

# Usage
open_documentation()

Response Fields Explained

Features Object

Each feature includes:

  • enabled - Whether the feature is currently active
  • description - What the feature does
  • job_types - Which job types support this feature (if applicable)
  • Additional fields - Feature-specific metadata

Rate Limits Object

  • default_per_minute - Standard rate limit for all clients
  • burst_allowance - Number of requests allowed in burst
  • custom_limits_available - Whether custom limits can be requested

Endpoints Object

Lists all available endpoints grouped by category:

  • jobs - Job management endpoints
  • clients - Client account endpoints
  • system - System information endpoints

Version Information

info

Current version: 1.0.0

The API follows semantic versioning (MAJOR.MINOR.PATCH).

tip

Breaking changes: Major version changes (e.g., 1.x.x → 2.x.x) may include breaking changes. Monitor this endpoint for version updates.

Best Practices

tip

Cache system info: This data changes infrequently. Cache it for 24 hours to reduce unnecessary requests.

tip

Feature detection: Use feature flags to conditionally enable functionality in your application.

warning

Don't hardcode: Use this endpoint to discover available features rather than hardcoding assumptions about API capabilities.