POST
https://spideriq.ai
/
api
/
v1
/
jobs
/
spiderPublicInstagram
/
submit
Submit SpiderPublicInstagram Job
curl --request POST \
  --url https://spideriq.ai/api/v1/jobs/spiderPublicInstagram/submit \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "payload": {
    "username": "<string>",
    "instagram_url": "<string>",
    "extract_contact_from_bio": true,
    "store_profile_image": true,
    "test": true
  },
  "priority": 123
}
'
{
  "job_id": "<string>",
  "type": "<string>",
  "status": "<string>",
  "created_at": "<string>",
  "message": "<string>",
  "username": "<string>",
  "full_name": "<string>",
  "bio": "<string>",
  "profile_pic_url": "<string>",
  "profile_pic_url_hosted": "<string>",
  "external_url": "<string>",
  "follower_count": 123,
  "following_count": 123,
  "post_count": 123,
  "is_business_account": true,
  "is_professional_account": true,
  "is_private": true,
  "is_verified": true,
  "business_category": "<string>",
  "business_email": "<string>",
  "business_phone": "<string>",
  "bio_emails": [
    {}
  ],
  "bio_phones": [
    {}
  ],
  "metadata": {
    "instagram_id": "<string>",
    "source": "<string>",
    "has_hosted_image": true
  }
}

Overview

SpiderPublicInstagram extracts public profile data from Instagram using the direct web API. No Instagram login is required - it uses the web_profile_info endpoint to fetch profile information.
No Authentication Required: This worker uses Instagram’s public web API endpoint. It does not require Instagram login credentials, making it safe and compliant for public data extraction.

Best For

  • Extracting business contact information (email, phone)
  • Getting follower/following counts and engagement metrics
  • Downloading and hosting profile images permanently
  • Verifying Instagram presence for lead enrichment
  • Building influencer databases with verified metrics

Request Body

payload
object
required
Job configuration payload
priority
integer
default:"5"
Job priority (0-10, higher = processed first).

Response

job_id
string
Unique job identifier (UUID format).
type
string
Always spiderPublicInstagram.
status
string
Initial status: queued.
created_at
string
Job creation timestamp (ISO 8601).
message
string
Confirmation message.

Example Request

curl -X POST https://spideriq.ai/api/v1/jobs/spiderPublicInstagram/submit \
  -H "Authorization: Bearer <your_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "username": "natgeo"
    }
  }'

Example Response

201 Created
{
  "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "type": "spiderPublicInstagram",
  "status": "queued",
  "created_at": "2026-01-18T14:30:00.000000",
  "message": "Job submitted successfully"
}

Results Structure

When the job completes, results include:

Profile Data

username
string
Instagram username.
full_name
string
Display name on profile.
bio
string
Profile biography text.
profile_pic_url
string
Original Instagram CDN profile image URL.Note: This URL may expire. Use profile_pic_url_hosted for permanent access.
profile_pic_url_hosted
string
SpiderMedia hosted profile image URL (permanent).Format: https://media.spideriq.ai/client-{id}/instagram_profile_{username}.jpg
external_url
string
Website link in profile bio.

Engagement Metrics

follower_count
integer
Number of followers.
following_count
integer
Number of accounts following.
post_count
integer
Total number of posts.

Account Type

is_business_account
boolean
Whether this is a business account.
is_professional_account
boolean
Whether this is a professional/creator account.
is_private
boolean
Whether the profile is private.Note: Private profiles return limited data.
is_verified
boolean
Whether the account has a verified badge.

Business Information

business_category
string
Business category (e.g., “Media/News Company”, “Restaurant”).Only available for business accounts.
business_email
string
Business contact email from profile settings.Only available for business accounts with email configured.
business_phone
string
Business contact phone from profile settings.Only available for business accounts with phone configured.

Extracted Contacts

bio_emails
array
Email addresses extracted from bio text using regex.Example: ["contact@company.com", "sales@company.com"]
bio_phones
array
Phone numbers extracted from bio text using regex.Supports US format, international format, and raw digits.

Metadata

metadata
object
Processing metadata.

Complete Results Example

{
  "success": true,
  "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "type": "spiderPublicInstagram",
  "status": "completed",
  "processing_time_seconds": 4.52,
  "data": {
    "username": "natgeo",
    "full_name": "National Geographic",
    "bio": "Experience the world through the eyes of National Geographic photographers. Contact: partnerships@natgeo.com",
    "profile_pic_url": "https://scontent-iad3-1.cdninstagram.com/v/t51.2885-19/...",
    "profile_pic_url_hosted": "https://media.spideriq.ai/client-cli_abc123/instagram_profile_natgeo.jpg",
    "external_url": "https://natgeo.com",
    "follower_count": 283000000,
    "following_count": 150,
    "post_count": 32000,
    "is_business_account": true,
    "is_professional_account": true,
    "is_private": false,
    "is_verified": true,
    "business_category": "Media/News Company",
    "business_email": "contact@natgeo.com",
    "business_phone": "+12025551234",
    "bio_emails": ["partnerships@natgeo.com"],
    "bio_phones": [],
    "metadata": {
      "instagram_id": "787132",
      "source": "instagram_web_api",
      "has_hosted_image": true
    }
  }
}

Processing Time

ConfigurationTypical Time
Basic profile extraction3-5 seconds
With profile image upload5-8 seconds
With mobile proxyAdd 2-5 seconds

Rate Limiting

Instagram has strict rate limits:
Limit TypeThreshold
Requests per hour per IP~200
Built-in delay between requests3-10 seconds (randomized)
Mobile Proxies RecommendedDatacenter IPs are quickly blocked by Instagram. For production use, mobile proxies from SpiderProxy are automatically assigned to provide carrier-grade IP addresses.

Error Cases

Invalid Input

{
  "detail": "Either 'username' or 'instagram_url' must be provided"
}

Profile Not Found

{
  "success": false,
  "status": "failed",
  "error": "Instagram profile not found: invalidusername123"
}

Rate Limited

{
  "success": false,
  "status": "failed",
  "error": "Instagram rate limit exceeded. Retry after 300s"
}

IP Blocked

{
  "success": false,
  "status": "failed",
  "error": "Instagram blocked the request. Mobile proxy required."
}

Private Profiles

Private profiles will return limited data:
{
  "username": "private_user",
  "full_name": "Private User",
  "bio": "",
  "is_private": true,
  "follower_count": 500,
  "following_count": 200,
  "post_count": 50
}
Private Profile Limitations:
  • No bio content
  • No business information
  • No external URL
  • Profile image may still be available

Next Steps