Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/scraperapi/scraperapi-skills/scraperapi-datapipelinenpx skills add scraperapi/scraperapi-skills --skill scraperapi-datapipelinegit clone --depth 1 https://github.com/scraperapi/scraperapi-skillsWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00185 | $0.02396 |
| Opus 5 | $0.00093 | $0.01198 |
| Sonnet 5 | $0.00037 | $0.00479 |
| Haiku 4.5 | $0.00018 | $0.00240 |
Grade A, and why
scraperapi-datapipeline scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
project = requests.post( How it starts
The opening of the file, as written. The whole thing — 300 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ScraperAPI DataPipeline
DataPipeline is a managed scraping product. You define a project (what to scrape, how often, where to send results), and ScraperAPI runs it on your schedule without you managing proxies, retries, or infrastructure.
When NOT to use DataPipeline
- One-off scrapes of a known URL list → use the Async API — faster, cheaper, no project setup.
- Exploring a site without known URLs → use the Crawler.
- Need results in real-time within your code → Async API is programmable; DataPipeline is scheduled.
- Free plan, need recurring execution → recurring schedules require a paid plan.
Use DataPipeline when: scraping runs on a fixed schedule, the input list is large (up to 100,000 items), results should flow to a webhook automatically, or you want email notifications on job completion.
Base URL and Auth
Base URL: https://datapipeline.scraperapi.com/api
Auth: ?api_key=YOUR_KEY (query parameter on every request)
Project Types
Set projectType in the create request to choose what to scrape:
| Type | Input |
|---|---|
urls |
Raw HTML from any URL |
urls_with_js |
Same but with JavaScript rendering |
google_search |
Search queries |
google_news |
Search queries |
google_jobs |
Search queries |
google_shopping |
Search queries |
google_maps |
Search queries |
amazon_product |
ASINs |
amazon_search |
Search queries |
amazon_offers |
ASINs |
walmart_product |
Product IDs |
walmart_search |
Search queries |
walmart_category |
Category IDs |
walmart_reviews |
Product IDs |
ebay_product |
12-digit product IDs |
ebay_search |
Search queries |
redfin_listing_for_sale |
Listing URLs |
redfin_listing_for_rent |
Listing URLs |
redfin_listing_search |
Search result URLs |
redfin_agent_details |
Agent profile URLs |
Creating a Project
import os, requests
API_KEY = os.environ["SCRAPERAPI_API_KEY"]
BASE = "https://datapipeline.scraperapi.com/api"
project = requests.post(
f"{BASE}/projects",
params={"api_key": API_KEY},
json={
"name": "Weekly Amazon price monitor",
"projectType": "amazon_product",
"schedulingEnabled": True,
"scrapingInterval": "weekly",
"scheduledAt": "now",
"projectInput": {
"type": "list",
"list": ["B09V3KXJPB", "B08N5WRWNW"] # ASINs
},
"apiParams": {
"country_code": "us"
},
"webhookOutput": {
"url": "https://yourapp.com/pipeline-results",
"webhookEncoding": "multipart_form_data_encoding"
},
"notificationConfig": {
"notifyOnSuccess": "with_every_run",
"notifyOnFailure": "with_every_run"
}
}
).json()
print(f"Project created: id={project['id']}")
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 300 lines · 185 tokens per session scan A 86b293a49098
scraperapi-datapipeline is a skill published in the GitHub repository scraperapi/scraperapi-skills (10 stars, last pushed 25d ago), licensed MIT. It adds 185 tokens to every session and 2,396 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
scrapling-official
Scrape web pages using Scrapling with anti-bot bypass (like Cloudflare Turnstile), stealth headless browsing, spiders framework, adaptive scraping, and JavaScript rendering. Use when asked to scrape, crawl, or extract data from websites; webfetch fails; the site has anti-bot protections; write Python code to…
ketch
Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but the CLI is the primary interface. Use when a question needs live sources: 'research X', 'what are people saying about Y'…
browser-automation
Playwright-based browser automation patterns for autonomous web interaction.
web-browse
Drive a headless browser to navigate pages, read content, click, and fill forms — for sites that need JavaScript rendering or interaction beyond a plain HTTP fetch.
ecommerce-full-pipeline
电商运营在开展跨境电商或闲鱼捡漏业务时,若需解决选品难、上架繁琐等痛点,必用此技能!一键打通“爆品挖掘→1688采集→多平台上架→推广文案→短视频生成”全自动流水线,轻松实现端到端自动化,让开店运营效率翻倍。.
browser-scrape
用 AutoCLI 二进制驱动用户已登录的 Chrome 抓取 Twitter/X、知乎、Bilibili、Reddit 等 55+ 站点.