SKILL.md
Bright Data SERP API & Web Scraper API
Overview
Collect search engine results and trigger large-scale data collections using Bright Data's SERP API and Web Scraper API. SERP API returns structured JSON from Google, Bing, Yahoo, and other search engines. Web Scraper API triggers asynchronous collections with webhook delivery.
Prerequisites
- Completed
brightdata-install-authsetup - SERP API zone or Web Scraper API dataset configured
- API token from Settings > API tokens
Instructions
Step 1: SERP API — Synchronous Google Search
// serp-api.ts
import 'dotenv/config';
const { BRIGHTDATA_CUSTOMER_ID, BRIGHTDATA_ZONE, BRIGHTDATA_ZONE_PASSWORD } = process.env;
async function searchGoogle(query: string, country = 'us') {
// SERP API uses the proxy protocol with JSON response
const username = `brd-customer-${BRIGHTDATA_CUSTOMER_ID}-zone-${BRIGHTDATA_ZONE}-country-${country}`;
const response = await fetch(
`https://www.google.com/search?q=${encodeURIComponent(query)}&brd_json=1`,
{
headers: {
'Proxy-Authorization': `Basic ${Buffer.from(`${username}:${BRIGHTDATA_ZONE_PASSWORD}`).toString('base64')}`,
},
}
);
const results = await response.json();
console.log(`Query: "${query}"`);
console.log(`Results: ${results.organic?.length || 0} organic`);
for (const r of results.organic?.slice(0, 5) || []) {
console.log(` ${r.rank}. ${r.title} — ${r.link}`);
}
return results;
}
searchGoogle('bright data web scraping').catch(console.error);
Step 2: SERP API — Structured JSON Response
The SERP API returns structured data when you append &brd_json=1:
interface SERPResponse {
organic: Array<{
rank: number;
title: string;
link: string;
description: string;
displayed_link: string;
}>;
paid?: Array<{ title: string; link: string; description: string }>;
knowledge_graph?: { title: string; description: string };
related_searches?: string[];
total_results?: number;
}
