Collect structured data from 30+ web sources with a single API call. The official Python SDK for Mindcase.
pip install mindcasefrom mindcase import Mindcase
client = Mindcase(api_key="mk_live_...")
results = client.run("instagram/profiles", params={
"usernames": ["nike", "adidas"]
})
for row in results:
print(f"{row['Username']}: {row['Followers']} followers")| Platform | Agents | Use Cases |
|---|---|---|
| Profiles, Companies, Employees, Jobs, Posts, People Search, Company Search, Domain Lookup | Lead generation, recruiting, market research | |
| Profiles, Posts, Comments | Influencer analysis, brand monitoring, engagement tracking | |
| YouTube | Videos, Channels, Comments, Shorts | Content research, competitor analysis, audience insights |
| Amazon | Products, Reviews, Bestsellers | Price monitoring, product research, review analysis |
| Google Maps | Businesses, Reviews, Reverse Geocoding | Local business data, location intelligence, competitive analysis |
| Twitter / X | Posts | Social listening, trend tracking, sentiment analysis |
| TikTok | Profiles | Creator analytics, engagement benchmarking |
| Posts, Comments | Community insights, brand sentiment, market research | |
| Shopify | Products | Competitor pricing, product catalog extraction |
| Indeed | Jobs | Job market analysis, salary benchmarking |
| App Store | Reviews | App sentiment analysis, feature request mining |
| Flipkart | Products | Indian e-commerce pricing, product data |
| Myntra | Products | Fashion e-commerce data, trend analysis |
See all agents and parameters: docs.mindcase.co/agents-overview
- 30+ pre-built agents across 15 platforms — no scraping infrastructure to manage
- Sync and async — block until results or fire-and-forget
- Automatic polling —
client.run()handles job lifecycle for you - Typed responses — iterate results, extract columns, convert to dicts
- Retry with backoff — built-in resilience for transient failures
- Credit tracking — check your balance programmatically
# List all available agents
agents = client.agents.list()
# Filter by platform
linkedin_agents = client.agents.list("linkedin")
# Get agent details and required parameters
agent = client.agents.get("linkedin/profiles")
print(agent.required_params)# Synchronous — blocks until results are ready
results = client.run("linkedin/company-search", params={
"queries": ["AI startups San Francisco"],
"maxResults": 50
})
print(f"{results.row_count} companies found")
print(f"{results.credits_used} credits used")
for company in results:
print(company["name"], company["industry"])
# Asynchronous — returns a Job immediately
job = client.run_async("amazon/reviews", params={
"startUrls": [{"url": "https://www.amazon.com/dp/B0XXXXXXXXX"}]
})
print(f"Job {job.id} started, status: {job.status}")# List recent jobs
jobs = client.jobs.list()
# Check status
job = client.jobs.get("job_abc123")
print(job.status) # "completed", "running", "failed"
# Get results
results = client.jobs.results("job_abc123")
# Cancel a running job
client.jobs.cancel("job_abc123")balance = client.credits()
print(f"{balance} credits remaining")from mindcase import (
Mindcase,
AuthenticationError,
InsufficientCreditsError,
RateLimitError,
ValidationError,
NotFoundError,
)
try:
results = client.run("instagram/profiles", params={
"usernames": ["nike"]
})
except AuthenticationError:
print("Invalid API key")
except InsufficientCreditsError as e:
print(f"Need {e.required} credits, have {e.remaining}")
except RateLimitError:
print("Too many requests — slow down")
except ValidationError as e:
print(f"Bad parameters: {e}")client = Mindcase(
api_key="mk_live_...", # or set MINDCASE_API_KEY env var
base_url="https://api.mindcase.co/api/v1", # default
timeout=30, # HTTP request timeout in seconds
poll_interval=3.0, # job polling interval in seconds
run_timeout=300, # max wait for run() in seconds
)Sign up at app.mindcase.co and create an API key in the API Console.
MIT